2010-11-17 10 views
16

Próbuję odczytać tekst z pliku tekstowego. Potrzebuję pomocy w ustaleniu, kiedy wystąpił koniec pliku. Jak mogę to ustalić w Javie?Jak ustalić, kiedy został osiągnięty koniec pliku?

FileInputStream istream = new FileInputStream("\""+filename+"\"");  
Scanner input = new Scanner(istream); 
while(EOF != true) 
{ 
.... 
} 

Dzięki!

Odpowiedz

23

można sprawdzić za pomocą hasNextLine(): odzyskiwanie oparte

Scanner input = new Scanner(new File("\""+filename+"\"")); 
while(input.hasNextLine()) 
{ 
    String data = input.nextLine(); 
} 
+0

Dzięki, to jest dokładnie to, czego szukałem (i jakoś tęskniłem za tym podczas oglądania następnej, następnej itd.) – Blackbinary

+0

@ Black, cieszę się, że mogę pomóc. – jjnguy

+3

'Scanner.hasNextLLine()' ulegnie awarii i wypali, jeśli nie czytasz całej linii naraz ('.nextLine()'). W przeciwnym razie, na Thomas Langston, użyj zamiast tego '.hasNext()'. – paulsm4

4

Linia może być to, co chcesz, ale Token oparty mogą być również użyteczne. można zobaczyć w dokumentacji Scanner

public boolean hasNext() 

Returns true jeśli to Scanner ma inny wyraz w jego wejścia. Ta metoda może blokować podczas oczekiwania na wejście do skanowania. Model Scanner nie przesuwa się poza żadne dane wejściowe.

Określone przez: hasNext interfejs Iterator<String>

Powroty: true wtedy i tylko wtedy, gdy ten Scanner ma inny żeton

Zgłasza: IllegalStateException - jeśli to Scanner jest zamknięty

Zobacz także: Iterator

Powiązane problemy