2011-06-09 72 views
1

好吧我可能会做一些愚蠢的或这应该是一个简单的修复,但基本上我有一个文本文件,我正在阅读从扫描仪对象,我得到一个空指针异常时我到达文件的末尾我不知道如何一旦它进入最终我得到得到解决这个java扫描器nullpointer异常到达文件结尾

import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.BufferedReader; 
import java.util.Scanner; 

public class FileAccess { 
    public static void main (String[] args) throws IOException { 
    Scanner s = null; 

    try { 
     s = new Scanner(new BufferedReader(new FileReader("move_list.txt"))); 
     while (s.hasNext()) { 
      System.out.println(s.next()); 
     } 
    } 
    finally { 
     if (s != null) { 
     s.close(); 
     } 
    } 
    } 
} 

Exception in thread "main" java.lang.NullPointerException 
    at java.util.regex.Matcher.toMatchResult(libgcj.so.10) 
    at java.util.Scanner.myCoreNext(libgcj.so.10) 
    at java.util.Scanner.hasNext(libgcj.so.10) 
    at FileAccess.main(FileAccess.java:13) 
+0

你为什么使用扫描仪?为什么不循环'bufferedReader.readLine()' – Kaj 2011-06-09 17:44:01

+0

似乎对我尝试的一些随机文件工作正常。 – 2011-06-09 17:46:28

+0

你能提供一个你无法正确解析的示例文件吗? – Haozhun 2011-06-09 17:56:07

回答

2

尝试使用

while (s.hasNextLine()) { 
    String line = s.nextLine(); 
    System.out.println(line); 
} 
s.close(); 
+0

我想用这个代码的文件包含大约400行,每行有18个数字,我想从每行中拉出最后一个数字,所以我不认为我可以使用nextLine () 方法 – mike 2011-06-09 18:16:18