2013-06-30 74 views
0

我已經在上面寫一個文件讀我剛寫使用如何從使用Java

FileWriter fWrite=new FileWriter("C:/folder/DP.txt"); 
BufferedWriter output = new BufferedWriter(fWrite); 
int lastItem = splitItems(capacity); //** calling the function that returns the last item in the file 
output.close(); 

然後我關閉該文件,並確信該數據已寫在上面的文件。在另一個函數中,我需要讀取我剛寫的數據。我寫了下面的代碼:

public static int splitItems(int capacity) throws IOException //read items from the file 
{ 
    BufferedReader br = new BufferedReader(new FileReader("C:/folder/DP.txt")); 

    //read the last line from file 
    String tmp, strLine = null; 
    while ((tmp = br.readLine()) != null) 
    { 
     strLine = tmp; 
    } //end while 

    String lastLine = strLine; //save the last line 

    String[] split = lastLine.split("\\s+"); /** split based on spaces 
    int lastItem=Integer.parseInt(split[capacity]); //save the int in the file 
    br.close(); //closing the file 
    return lastItem; //return the last number 

}//end split items 

然後,在運行時,我得到了以下錯誤:

java.lang.NullPointerException 

當我檢查文件,我覺得很空。問題是什麼。爲什麼BufferedReader刪除文件內容?

編輯:我添加了更詳細的代碼。我無法發佈一切。這是相當長的代碼。主要想法是:一切都很好。正確寫入文件的數據。當我添加一個需要從文件中讀取的新函數時,我得到了錯誤。在上面的代碼中,我在編譯器給出錯誤的行中添加了**註釋。

+2

請編輯您的問題並粘貼*完整*錯誤消息。您已經遺漏了我們需要幫助您的信息。 –

+0

哪一行會得到NullPointerException?您確定該文件在閱讀之前是否有數據? (你是否從操作系統打開文件夾來查看它的內容) – Nivas

+0

它適用於我...請添加[sscce](http://sscce.org) - 可用於重現問題的代碼。 – Pshemo

回答

1

我想你需要關閉你的BufferedWriter。然後你可以閱讀文件,你會得到你的書面內容。筆者的一個例子是here

+0

這是問題所在。謝謝。 – user2192774