我正在使用Eclipse Luna Java EE,并将之前的项目移动到它。我正在尝试读取.txt文件。我知道该节目"看到"该文件,但当它测试扫描仪对象以检查它是否" hasNext"时,结果始终为false。
我有什么遗失的吗?
package visualLaw;
//package system;
import java.io.*;
import java.util.*;
import java.io.FileWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.IOException;
import javax.swing.SwingUtilities;
public class ParseFile {
public static void main (String[] args){
File plan = new File("plan.txt");
final ReadFile rf = new ReadFile(plan);
}
}
class ReadFile{
Scanner s =null;
ReadFile(File file){
try {
s = new Scanner (file);
System.out.println(file.getAbsolutePath());
}catch (Exception e) {
System.out.println("FEIL: argsfilen");
}
在上面的代码中,我得到了正确显示的网址,以及所有内容。 但是当我执行下面的代码时,它不会读取单行,如果我在没有测试的情况下尝试它,它会给我一个nullpoint错误。
while(s.hasNext()) {
System.out.println("Did I get here?");
try {
tag = s.next();
}catch (Exception e) {
System.out.println("FEIL: argsfilen");
}
}
}
非常感谢任何帮助!
答案 0 :(得分:0)
尝试在扫描仪中指定编码类型:
s = new Scanner (file, "ISO-8859-1");
如果仍然不起作用,可能是因为Scanner使用空格作为默认分隔符,并且您的文件可能为空或仅包含空格。试试这个:
s = new Scanner(new BufferedReader(new FileReader(file)));
让我知道它是怎么回事! :)