我无法阅读文本文件的第一个单词。如果第一个单词等于“Circle”,我想在我的数组中创建一个新的 Circle 对象。
FileInputStream fileIn = new FileInputStream("shapeFile.txt");
Scanner scan = new Scanner(fileIn);
while(scan.hasNextLine()) {
String shape = scan.next();
if(shape.equals("Circle")) {
myShapes.addShape(new Circle(scan.nextInt(), scan.nextInt(), scan.nextInt(), Color.RED));
}
}
上面的代码出现以下错误,指向 String shape = scan.next(); 行;
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at shapes.ShapeManagement.main(ShapeManagement.java:151)
Java Result: 1
如果有人能帮助我解决这个问题,我将不胜感激。
最佳答案
你可能得到这个异常的原因是因为 scan.hasNextLine()
可以返回 true
即使该行上没有标记。如果您在标记后没有标记时调用 scan.next()
,您将得到您所看到的 java.util.NoSuchElementException
。
因此,将 scan.hasNextLine()
换成 scan.hasNext()
。
或者,您可以将 scan.next()
替换为 scan.nextLine()
,然后检查该行中的第一个单词是否是您要查找的单词.对于包含大量行的文件,这可能会更快。
希望对您有所帮助。
关于Java - 读取文本文件的第一个字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345160/