Mój kod musi zostać odczytany w całym pliku. Obecnie używam następujący kod:Jak sprawdzić, czy Czytelnik jest w EOF?
BufferedReader r = new BufferedReader(new FileReader(myFile));
while (r.ready()) {
String s = r.readLine();
// do something with s
}
r.close();
Jeśli plik jest pusty, choć wtedy s
jest null, co nie jest dobre. Czy jest jakiś Reader
, który ma metodę atEOF()
lub odpowiednik?
Sposób ready() mówi tylko, czy następny odczyt będzie blokował. Jeśli czytnik znajduje się na eof, następne połączenie nie zostanie zablokowane; powróci natychmiast ze wskazaniem EOF (null dla readline, -1 dla read). –
Jeszcze lepiej: do-while, a nie while. –
JavaDoc z 'BufferedReader.readLine()' mówi, że zwraca "Ciąg zawierający zawartość wiersza ... lub null **, jeśli koniec strumienia został osiągnięty **" – Raedwald