2014-12-01 66 views
0

txt文件,我正在逐行閱讀我的程序。我的目標是顯示沒有標點的小文本。到目前爲止,我可以用下面的代碼以這種方式顯示這個文本,但是我一直在我的「while」表達式的最後一行接收到一個空指針異常的運行時錯誤,我不知道我的錯誤在哪裏。我相信這個問題可能是在我的布爾表達式中,而我試圖將輸入!= null更改爲reader.readLine() != null,但沒有成功。謝謝!Nullpointer在文件中逐行讀取異常

import java.io.FileReader; 
import java.io.BufferedReader; 
import java.io.FileNotFoundException; 
import java.io.IOException; 

public class BinaryTree { 

    public static void main(String[] args) { 

     String inputFile = "pg345.txt"; 
     FileReader fileReader = null; 

     try { 
      fileReader = new FileReader(inputFile); 
     } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
     } 

     BufferedReader reader = new BufferedReader(fileReader); 
     String input; 

     try { 
      input = reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase(); 
      System.out.println(input); 
      while (input != null) { 


       input = reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase(); 
       System.out.println(input); 
      } 


     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     try { 
      fileReader.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 





    } 


} 
+0

可能重複[什麼是空指針異常,以及如何解決它?](http://stackoverflow.com/questions/218384/what-is-a-null-pointer-exception-and-how -DO-I-FIX-它) – 2014-12-02 17:19:36

回答

1

您的罪魁禍首是

reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase() 
reader.readLine().toLowerCase().replaceAll("[^a-zA-Z ]", "").toLowerCase(); 

這裏調用,如果有文件中沒有更多的行

reader.readLine() 

可能返回null。