2010-11-17 31 views
16

Estoy tratando de leer el texto de un archivo de texto. Necesito ayuda para saber cuándo se ha producido el final del archivo. ¿Cómo puedo determinar esto en Java?¿Cómo determinar cuándo se ha alcanzado el final del archivo?

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

¡Gracias!

Respuesta

23

Se puede comprobar usando hasNextLine(): la recuperación basada

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

Gracias, eso es exactamente lo que estaba buscando (y de alguna manera lo perdí al ver nextInt, nextDouble etc.) – Blackbinary

+0

@Black, me alegro de poder ayudar. – jjnguy

+3

'Scanner.hasNextLLine()' se bloqueará y se quemará si no está leyendo una línea completa a la vez ('.nextLine()'). De lo contrario, según Thomas Langston, use '.hasNext()' en su lugar. – paulsm4

4

línea puede ser lo que quiera, pero simbólico basado también puede ser útil. Se puede ver en la documentación de Scanner

public boolean hasNext() 

devoluciones true si esto Scanner tiene otra ficha en su entrada. Este método puede bloquearse mientras espera la entrada para escanear. El Scanner no avanza más allá de ninguna entrada.

especificado por: hasNext en la interfaz Iterator<String>

Devuelve: true si y sólo si esta Scanner tiene otra ficha

Lanza: IllegalStateException - si esto Scanner está cerrado

Ver también: Iterator

Cuestiones relacionadas