2015-07-21 70 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).