2015-07-21 46 views
1

我有此代碼從文本文件讀取,然後修改它。然後將修改的內容寫入另一個文本文件。 我得到一個空指針異常在out.write(read);而且,並不是所有的行都在寫,可有人幫我。謝謝文件寫入器和文件讀取器錯誤

import java.util.*; 
import java.io.*; 

public class File 
{ 
    BufferedReader in; 
    BufferedWriter out; 
    String read; 

    public File() 
    { 
     try { 
      in = new BufferedReader(new FileReader("myFile.txt")); 
      Scanner scan = new Scanner(in); 
      out = new BufferedWriter(new FileWriter("output.txt")); 

      while (scan.hasNext()) { 
       read = in.readLine(); 
       //Write codes to modify file here 
       //___codes not written yet______// 
       out.write(read); 
       scan.next(); 
       System.out.println("file output: " + read);     
      } 
      out.close(); 
      in.close(); 
     } catch (IOException e) { 
      System.out.println("There was a problem:" + e); 
     } 
    } 

    public static void main(String[] args) 
    { 
     File File = new File(); 
    } 
} 

回答

1

嘗試

while((read = in.readLine()) != null) 

,而不是

while (scan.hasNext()) 
+1

,擺脫以下'的readLine()'的。 – EJP

+0

這是什麼問題? –

+0

@VishalRathod如果你喜歡處理_every_行,讀取兩次也許不聰明。 – Tom

0

需要改變:while((read = in.readLine()) != null).