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();
}
}
程序编译但它给我一个如下错误: 线程“main”中的异常java.util.NoSuchElementException:找不到行 指向line = input.nextLine();我不明白为什么。
答案 0 :(得分:0)
问题是,在while
循环中,您耗尽了Scanner
个对象,因此其中没有任何行。
稍后当你在nextLine()
循环中调用for
时,它会抛出异常,因为你已经遍历了你的行。
我的建议是使用List
和pojo代替:
List<MyBookPojo> bookPojos = new ArrayList<MyBookPojo>();
其中MyBookPojo
可以包含您从每行中提取的3 String
个。
因此,您可以在列表中添加任意数量的对象。