Podczas odczytu pliku poniżej część kodu działa dobrze
// Kod A
try{
String s1;
f = new FileReader("C:\Test.txt");
f1 = new BufferedReader(f);
while((s1 = f1.readLine())!=null)
{
System.out.println(s1);
}
}
Ale ten nie:
// Kod 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);
}
}
Myślę, że zarówno kod A, jak i B są takie same; ale kod A odczytuje pełną zawartość pliku, podczas gdy kod B nie. Dlaczego?
Odpowiedzi:
2 dla odpowiedzi № 1W kodzie B dzwonisz readLine()
dwa razy w jednej iteracji, w ten sposób czytając 2 linie w jednej iteracji i kończąc na drukowaniu tylko co drugą linię. Nawet jeśli nie przypisujesz f1.readLine()
na cokolwiek wiersz jest nadal czytany, a czytnik przechodzi do następnego wiersza.