2010-11-17 10 views
16

Ich versuche, Text aus einer Textdatei zu lesen. Ich brauche Hilfe herauszufinden, wenn das Ende der Datei aufgetreten ist. Wie kann ich das in Java feststellen?Wie kann man feststellen, wann das Dateiende erreicht wurde?

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

Vielen Dank!

Antwort

23

können Sie überprüfen hasNextLine() mit:

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

Danke, das ist genau das, was ich gesucht habe (und es irgendwie verpasst, während nextInt, nextDouble etc. zu sehen) – Blackbinary

+0

@Black, froh zu helfen. – jjnguy

+3

'Scanner.hasNextLLine()' wird abstürzen und brennen, wenn Sie nicht immer eine ganze Zeile lesen ('.nextLine()'). Andernfalls verwenden Sie für Thomas Langston stattdessen '.hasNext()'. – paulsm4

4

Linie basierte Suche kann sein, was Sie wollen, aber auch auf der Grundlage Token nützlich sein kann. Sie in der Dokumentation von Scanner

public boolean hasNext() 

Returns true sehen können, wenn diese Scanner ein anderes Token in seinem Eingang hat. Diese Methode blockiert möglicherweise, während auf die Eingabe zum Scannen gewartet wird. Die Scanner geht nicht über eine Eingabe hinaus.

definiert durch: hasNext in Schnittstelle Iterator<String>

Returns: true, wenn und nur wenn diese Scanner andere Token

hat

Wirft: IllegalStateException - falls dieser Scanner

geschlossen ist

Siehe auch: Iterator

Verwandte Themen