我无法从一个简单的文本文件中读取,似乎无法找出原因。我以前做过这个,我不确定问题是什么。任何帮助将不胜感激!
import java.io.File;
import java.util.Scanner;
public class CS2110TokenReader {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File theFile = new File("data1.txt");
Scanner scnFile = new Scanner(theFile);
try {
scnFile = new Scanner(theFile);
} catch (Exception e) {
System.exit(1);
}
while (theFile.hasNext()) {
String s1 = theFile.next();
Double d1 = theFile.nextDouble();
System.out.println(s1 + " " + d1);
}
}
}
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method hasNext() is undefined for the type File
The method next() is undefined for the type File
The method nextDouble() is undefined for the type File
at CS2110TokenReader.main(CS2110TokenReader.java:20)
它甚至不会扫描下一行。这是我的目标。扫描和阅读。
答案 0 :(得分:5)
while (theFile.hasNext()) { // change to `scnFile.hasNext()`
String s1 = theFile.next(); // change to `scnFile.next()`
Double d1 = theFile.nextDouble(); // change to `scnFile.nextDouble()`
System.out.println(s1 + " " + d1);
}
您正在Scanner
引用上调用File
类的方法。在所有调用中将theFile
替换为scnFile
。
其次,您正在调用next()
和nextDouble()
,但只检查hasNext()
一次。这可能会让你在某个时间点NoSuchElementException
。在你真正阅读之前,请确保你有一个阅读的输入。