2011-02-26 63 views
0

我有一個文件,我們稱之爲text.txt。它包含幾行文字。我試圖用我的代碼讀取它,以便我可以使用我的代碼進行編輯,不幸的是,每當我嘗試閱讀代碼時,它都會返回null,並且根本不會加載代碼。沒有錯誤信息或任何東西。Java從文件讀取問題

一個例子是在它下面的一個文件:

a 
b 
c 
d 
e 
f 

加載時,它加載以下:

a 
b 
c 
d 
null 

這使得沒有任何意義,我無論如何,因爲,如果它是進入while循環,它不應該退出!任何人都可以幫我嗎?

try 
{ 
    File theFile = new File(docName); 

    if (theFile.exists() && theFile.canRead()) 
    { 
     BufferedReader docFile; 
     docFile = new BufferedReader(
       new FileReader(f)); 

     String aLine = docFile.readLine(); 

     while (aLine != null) 
     { 
      aLine = docFile.readLine(); 
      doc.add(aLine); 
     } 

     docFile.close(); 
    } 

回答

3

注意,你是做

aLine = docFile.readLine(); 

在循環內讀取第一行以

String aLine = docFile.readLine(); 

,然後你放棄此行。

+0

更不用說,他在添加aLine到doc *之前檢查它是否爲空。 – johusman 2011-02-26 20:12:10

0

在閱讀下一行之前添加行。如果你從邏輯上思考這個問題,那應該是有道理的,如果沒有的話,請問。

0
while ((aLine = docFile.readLine())!= null) 
{ 
    doc.add(aLine); 
} 
0

在while循環,如果你翻車了兩種說法,則反而會加重你知道是不是空行,然後選中下一行。現在,循環會檢查該行,然後前進一行並將新行添加到doc中,以便它可以爲null,然後在添加null後退出。