在使用流时,为什么它会回显先前的输出?

mar*_*ane 0 java flush

我试图使用BufferedReader缓冲文件中的内容.在这个过程中,我在下面的程序while((line = in.readLine()) != "\n")中给出了一个错误的约束,这给了我一个不希望的输出.

我后来纠正了它,因为while((line = in.readLine()) != "null")它应该能够显示文件中的内容(新文件),但它会继续再次显示相同的错误输出.

import java.io.*;

    public class ReaderTest {

        public static void main(String[] args) throws IOException{

                    BufferedReader in = new BufferedReader(new FileReader("/home/a1340/new file"));

                    String line="";
                    while((line = in.readLine()) != "\n"){
                    System.out.println(line);
                    }
                    in.close();

                  }
                }

        import java.io.*;

        public class ReaderTest {

            public static void main(String[] args) throws IOException{

                        BufferedReader in = new BufferedReader(new FileReader("/home/a1340/new file"));

                        String line="";
                        while((line = in.readLine()) != "null"){
                        System.out.println(line);
                        }
                        in.close();

                      }
                    }
Run Code Online (Sandbox Code Playgroud)

MBy*_*ByD 5

readLine()当它到达流的末尾时返回null,因此您需要比较null,而不是"null":

while((line = in.readLine()) != null)
Run Code Online (Sandbox Code Playgroud)