0
public static void getBooks()throws FileNotFoundException{

  Scanner input = new Scanner(bookFile);
  String line = input.nextLine();
  bookNum = 1;

  while (input.hasNextLine()) {
     bookNum += 1;
     line = input.nextLine();
  }

  bookarray = new String[3][bookNum];

  for (int y = 0; y < bookNum; y++){
     bookarray [0][y] = line.substring(0,10);
     bookarray [1][y] = line.substring(11,15);
     bookarray [2][y] = line.substring(17,18);
     line = input.nextLine();
  }     
}

该程序编译但它给了我一个看起来像这样的错误:线程“主”java.util.NoSuchElementException中的异常:没有找到指向行= input.nextLine()的行;线,我不明白为什么。

4

1 回答 1

0

问题是在你的while循环中你耗尽了你的Scanner对象,所以里面没有剩下的行。

稍后当您nextLine()for循环中调用时,它显然会抛出异常,因为您已经遍历了您的行。

我的建议是使用 aList和 pojo 代替:

List<MyBookPojo> bookPojos = new ArrayList<MyBookPojo>();

whereMyBookPojo可以包含String您从每一行中提取的那些 3 。

因此,您可以通过这种方式将任意数量的对象添加到您的列表中。

于 2014-03-15T21:28:45.193 回答