所以我再次遇到Java问题。我不确定在Java中创建一个对象数组是否更难,或者我不习惯它,但据我所知它现在是正确的(如果没有,请告诉我)。因此,在完成所有这些摆弄后,我转移到了文件I / O. 所以这就是我目前遇到的问题。
public static void main(String[] args) {
Coordinate[] locCoor = new Coordinate[100];
Circle[] locCircles = new Circle[100];
int track = 0;
double X ,Y;
Scanner scan;
File file = new File("resource\\coordinates2.txt");
try {
scan = new Scanner(file);
while(scan.hasNextLine()){
String line = scan.nextLine();
Scanner lineScanner = new Scanner(line);
while(lineScanner.hasNextDouble()) {
locCoor[track] = new Coordinate();
X = lineScanner.nextDouble();
if(lineScanner.hasNextDouble()) {
Y = lineScanner.nextDouble();
locCoor[track] = new Coordinate(X,Y);
track++;
}
}
System.out.println(track);
}
}catch(FileNotFoundException e1) {
e1.printStackTrace();
}
}
我得到以下错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
**at implementation.main(implementation.java:133)**
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
Process finished with exit code 1
所以在我的代码中,我的代码和星号错误对应,但经过大量搜索后我似乎无法找到任何解决方案。如果有人能指出我正确的方向,我将非常感激。
OH,我忘了问是否应该在顶部或循环中声明对象数组(locCoor和locCircles)。我知道我的代码中都有。
答案 0 :(得分:1)
您确定它有一个下一个元素,然后阅读两个
while(lineScanner.hasNext()) {
X = scan.nextDouble();
Y = scan.nextDouble();
考虑游标位于倒数第二个元素,它返回true,因为你有下一个元素并且你读取了最后一个元素,但是再次读取下一个语句中的元素会抛出这个错误