2013-07-07 13 views
5

Sto facendo un log e voglio leggere l'ultima riga del file log.txt, ma sto avendo problemi a fermare BufferedReader una volta che l'ultima riga è leggere.come leggere l'ultima riga in un file di testo usando java

Ecco il mio codice:

try { 
    String sCurrentLine; 

    br = new BufferedReader(new FileReader("C:\\testing.txt")); 

    while ((sCurrentLine = br.readLine()) != null) { 
     System.out.println(sCurrentLine); 
    } 
} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     if (br != null)br.close(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
} 
+0

http: // stackoverflow.com/questions/686231/java-quickly-read-the-last-line-of-a-text-file –

+2

IMO, questa NON è una domanda duplicata. –

+0

Vedere questa risposta: http://stackoverflow.com/a/11665098/548225 – anubhava

risposta

14

Ecco una buona solution.

Nel codice, si può solo creare una variabile ausiliaria chiamato lastLine e costantemente reinizializzare alla riga corrente in questo modo:

String lastLine = ""; 

    while ((sCurrentLine = br.readLine()) != null) 
    { 
     System.out.println(sCurrentLine); 
     lastLine = sCurrentLine; 
    } 
+3

Il tuo link è ricorsivo? o.O – Zong

+1

È divertente. Fisso. –

6

Questo frammento di codice dovrebbe funzionare per voi:

BufferedReader input = new BufferedReader(new FileReader(fileName)); 
    String last, line; 

    while ((line = in.readLine()) != null) { 
     last = line; 
    } 
    //do something with last! 
+0

stiamo controllando la condizione non nulla durante il ciclo it self perché abbiamo bisogno della condizione if nidificata all'interno? – Subayan

+0

@Subayan Errore da parte mia, risolto! –

Problemi correlati