Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当我尝试将两个(.txt)文件合并到另一个(.txt)文件时,为什么代码不起作用?_Java_Bufferedreader_Printwriter - Fatal编程技术网

Java 当我尝试将两个(.txt)文件合并到另一个(.txt)文件时,为什么代码不起作用?

Java 当我尝试将两个(.txt)文件合并到另一个(.txt)文件时,为什么代码不起作用?,java,bufferedreader,printwriter,Java,Bufferedreader,Printwriter,我有两个.txt文件(file1.txt和file2.txt)。在这些文件中有一些字符行。我的意图是将这两个文件的内容合并到另一个文件(file3.txt)中。我的代码如下: public static void main(String[] args) { try { PrintWriter pw = new PrintWriter("file3.txt"); BufferedReader br1 = new BufferedReader(new

我有两个.txt文件(file1.txt和file2.txt)。在这些文件中有一些字符行。我的意图是将这两个文件的内容合并到另一个文件(file3.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)时,它不会显示任何内容,并且鼠标指针会更改为processing。为什么会发生这种情况。我忘记添加的缺失部分在哪里?我应该编辑哪个部分?为什么。。我需要你的帮助。。谢谢。

您没有为循环中的行重新分配值,因此您得到了一个无限循环

更改两个while循环:

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

    }

您没有为循环中的行重新分配值,因此得到了一个无限循环

更改两个while循环:

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

    }

你错过了任务。你可以试试这样的

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

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

你错过了任务。你可以试试这样的

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

 line = "";
 while ((line=br2.readLine())!=null) {
     pw.println(line);
 }
许多代码在实现中重复了多次。你可以 只需创建一个方法并根据文件名调用它

这是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();
}
许多代码在实现中重复了多次。你可以 只需创建一个方法并根据文件名调用它

这是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();
}

你怎么看
br1.readLine()本身有吗?因为您没有将它们添加到一起?你只是打开阅读,我想它会返回下一行。是吗?那你用那条线干什么?我知道了。。我忘了重新分配。你觉得
br1.readLine()怎么样本身有吗?因为您没有将它们添加到一起?你只是打开阅读,我想它会返回下一行。是吗?那你用那条线干什么?我知道了。。我忘了重新分配。