Pri čítaní súboru pod časťou kódu funguje dobre
// Kód A
try{
String s1;
f = new FileReader("C:\Test.txt");
f1 = new BufferedReader(f);
while((s1 = f1.readLine())!=null)
{
System.out.println(s1);
}
}
Ale tento nie:
// Kód 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);
}
}
Myslím si, že kód A aj B sú rovnaké; ale kód A prečíta celý obsah súboru, zatiaľ čo kód B nie. Prečo?
odpovede:
2 pre odpoveď č. 1V kóde B voláte readLine()
dvakrát v jednej iterácii, čím sa odčítajú 2 riadky v jednej iterácii a nakoniec sa vytlačí iba každý druhý riadok. Aj keď nepriradíte f1.readLine()
na čokoľvek je riadok stále prečítaný a čitateľ pokračuje ďalej.