这是我的代码:
try {
scan_movie_theater = new Scanner(new FileInputStream(new File("d:/movietheater.txt")));
} catch (FileNotFoundException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
while((line = scan_movie_theater.next()) != null ){
i = scan_movie_theater.nextInt();
System.out.println(line);
System.out.println(i);
}
scan_movie_theater.close();
我想把文件读成一个字符串一个整数。我可以做到这一点。但是当我完成文件的读取。我看到一个java java.util.NoSuchElementException。我该如何解决这个问题?
这是我的txt文件。
dsa 435
salon 123
xxxx 123214324
答案 0 :(得分:2)
请参阅Javadoc。 Scanner.next()不会返回null。你必须在调用next()之前检查hasNext()。
95%的代码与问题无关,包括 所有 Swing代码。
答案 1 :(得分:0)
你需要这样做:
while( scan_movie_theater.hasNext()){
line = scan_movie_theater.next();
i = scan_movie_theater.nextInt();
System.out.println(line);
System.out.println(i);
}
在您当前的实现中,您试图阅读结束。
希望这有帮助。
答案 2 :(得分:0)
当您尝试在集合结束后访问元素时,通常会出现此错误。即因为列表已经结束而实际上不存在的元素。 解决方案:您必须检查EOF以及hasNext()。 next()只是将光标移动到下一个元素,并且您正在尝试访问EOF后不存在的元素。 因此,尝试使用hasNext(),它检查是否存在下一个元素,然后应用next()来检索下一个元素。