Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.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代码的完整文件_Java_Filereader - Fatal编程技术网

无法读取包含以下Java代码的完整文件

无法读取包含以下Java代码的完整文件,java,filereader,Java,Filereader,在读取下面的文件时,部分代码可以正常工作 //代码A try{ String s1; f = new FileReader("C:\\Test.txt"); f1 = new BufferedReader(f); while((s1 = f1.readLine())!=null) { System.out.pri

在读取下面的文件时,部分代码可以正常工作

//代码A

         try{
              String s1;
              f = new FileReader("C:\\Test.txt");
              f1 = new BufferedReader(f);
              while((s1 = f1.readLine())!=null)
              {
              System.out.println(s1);
              } 
            }
但这一个不是:

//代码B

      try{
             String s1;
             f = new FileReader("C:\\Test.txt");
             f1 = new BufferedReader(f);        
           while((f1.readLine())!=null)
           {
           s1=f1.readLine();
           System.out.println(s1);
          }
    }

我认为代码A和代码B是相同的;但代码A读取文件的全部内容,而代码B不读取。为什么?

在代码B中,您在一次迭代中调用了两次readLine(),因此在一次迭代中读取两行,最后只打印第二行。即使您没有将
f1.readLine()
分配给任何内容,该行仍被读取,并且读取器继续执行下一行。

在代码B示例中,readLine方法在每个循环中被调用两次。一次在while评估和一次在循环中。只打印循环中的readLine方法。(还要注意,空测试仅适用于条件)