2015-03-23 1 views
0

При чтении файла ниже часть кода работает отличноНевозможно прочитать полный файл с ниже кода Java

// Код 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 - нет. Зачем?

+0

В коде B пример метода readLine вызывается дважды в каждом цикле. Один раз в процессе оценки и один раз в цикле. Распечатывается только метод readLine в цикле. (Также обратите внимание, что нулевой тест применяется только к условию) – user3360944

ответ

2

В коде B вы вызываете readLine() дважды на одной итерации, таким образом, считывая 2 строки на одной итерации и заканчивая печать только каждой второй строки. Даже если вы не назначаете f1.readLine() на что-нибудь, что строка все еще читается, и читатель переходит к следующей строке.

Смежные вопросы