2011-01-21 135 views
1

我正在做一个非常简单的文本解析程序,使用朋友给我的文件。 然而,当我打开使用扫描器等使文件,Java扫描仪无法读取文件

Scanner scan = new Scanner(new File(path)); 
System.err.println(scan.hasNext()); 
while(scan.hasNextLine()) 
    System.err.println(scan.nextLine()); 
System.err.println(scan.next()); 

结果:

false 
Exception in thread "main" java.util.NoSuchElementException 
at java.util.Scanner.throwFor(Scanner.java:855) 
at java.util.Scanner.next(Scanner.java:1364) 
at Test.main(Test.java:18) 

扫描器将文件处理(这是一些1400线长)为空。

任何人都可以想到任何原因的扫描仪可能无法看到一个文件?我怀疑这个文件是从Windows计算机导入Linux机器可能有一些用它做的事,但我的心是开放给其他的可能性

编辑的格式和代码中的错误

+1

在创建扫描仪,你得到任何错误与创建新的文件? – 2011-01-21 20:11:51

+0

没有任何。 – 2011-01-21 20:12:48

+2

显示的堆栈跟踪包括对`Scanner.next()`的调用,但是您的代码段中没有显示此类调用。哪一行(在你的代码中)异常来自? – 2011-01-21 20:15:49

回答

3

发现问题: 逐字节地看着文件。在第一个字节中找到了EOF字符。 Java忽略了文件的其余部分。

0

编辑:最前一页猜错是错误的

该文件可能有1400行充满空格。

0

它也许发生了这样的问题:

1 - 您的文件可能不会创建。

2 - 您的文件正在用于其他程序。

3 - 路径地址为false。

3

我解决它使用new Scanner(new BufferedReader(new FileReader(fileName)))代替new Scanner(new File(fileName))