2011-06-09 74 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