0

我正在尝试将文件中的一系列整数读取到 ArrayList 中,但是在访问 numbers.get(0) 时,我得到了 Out of Bounds 异常,大概是因为没有任何内容写入列表。

ArrayList<Integer> numbers = new ArrayList<Integer>();

public void Numbers() throws IOException{

  File file = new File("Numbers.txt");
  Scanner inputFile = new Scanner(file);

  while (inputFile.hasNext()){

    numbers.add(inputFile.nextInt());
  }

    inputFile.close();
}

任何帮助将不胜感激。如果需要,我可以提供更多代码片段。

4

2 回答 2

4

一个可能的问题是您已将该方法声明为

public void Numbers() throws IOException

这是一个Numbers返回void和抛出的方法IOException。请注意,这不是您可能想要的构造函数,因为您已经声明了返回类型。如果您正在调用numbers.get(0)同一类的另一个方法。Numbers()如果您希望它作为构造函数自动调用,则可能不会显式调用此方法。

于 2012-11-29T00:39:12.663 回答
1

我认为它试图读取令牌int并出现异常。试试这个:

try{
   File file = new File("Numbers.txt");
   Scanner inputFile = new Scanner(file);
   while (inputFile.hasNext()){
    String next = inputFile.next();
    try{
        numbers.add(Integer.valueOf(next));
     }catch(NumberFormatException nfe){
       //not a number, ignore it
     }
   }
 }catch(IOException ioe){
      ioe.printStackTrace();
 }
于 2012-11-29T00:40:09.413 回答