2017-08-28 39 views
0

我有两个.txt文件(file1.txt和file2.txt)。在这些文件中有一些字符。我的意图是将这两个文件的内容合并到另一个文件(file3.txt)中。我的代码如下:当我尝试将两个(.txt)文件合并到另一个(.txt)文件时,为什么我的代码不工作?

public static void main(String[] args) { 

    try { 
     PrintWriter pw = new PrintWriter("file3.txt"); 
     BufferedReader br1 = new BufferedReader(new FileReader("file1.txt")); 
     BufferedReader br2 = new BufferedReader(new FileReader("file2.txt")); 


     String line = br1.readLine(); 
     while(line!=null){ 
      pw.println(line); 
      br1.readLine(); 
     } 

     line = br2.readLine(); 
     while (line!=null) { 
      pw.println(line); 
      br2.readLine(); 

     } 

     pw.flush(); 
     pw.close(); 

     br1.close(); 
     br2.close(); 

    } catch (FileNotFoundException ex) { 
     Logger.getLogger(JavaIoProject.class.getName()).log(Level.SEVERE, null, ex); 
    } catch (IOException ex) { 
     Logger.getLogger(JavaIoProject.class.getName()).log(Level.SEVERE, null, ex); 
    }  
} 

编译时没有错误。运行后,当我尝试查看预期的输出(file3.txt)时,它不显示任何内容,鼠标指针更改为处理。为什么会这样。哪里是我忘记添加或缺失的部分,我应该编辑,为什么..需要你的帮助..谢谢。

+4

你觉得'br1.readLine();'',_by本身_? –

+0

因为你没有把它们加在一起?你只是打开并阅读它们 – Siyavash

+0

我认为它会返回下一行。不是吗? – Sadhon

回答

1

大量的代码你已经在你执行重复多次。你可以用 简单地创建一个方法并按照文件名调用它。

PrintWriter pw = new PrintWriter("file3.txt"); 
    readAndWrite(pw, "file1.txt"); 
    readAndWrite(pw, "file2.txt"); 

    pw.flush(); 
    pw.close(); 

,这是readAndWrite方法的定义。也纠正循环。

private static void readAndWrite(PrintWriter pw, String filename) throws FileNotFoundException, IOException { 
    BufferedReader br = new BufferedReader(new FileReader(filename)); 
    String line = br.readLine(); 
    while (line!=null) { 
     pw.println(line); 
     line =br.readLine();  
    } 
    br.close(); 
} 
2

您错过了为循环中的行重新赋值,所以您会遇到无限循环。

变化都while循环:

while (line!=null) { 
     pw.println(line); 
     line =br2.readLine(); 

    } 
1

你失踪的分配。所以你可以尝试这样的事情。

String line =""; 
while((line=br1.readLine())!=null){ 
     pw.println(line); 
} 

line = ""; 
while ((line=br2.readLine())!=null) { 
    pw.println(line); 
} 
相关问题