Leggere file in Java con LineNumberReader
In genere usiamo BufferedReader per leggere file riga per riga in Java; ma ho scoperto che esiste anche LineNumberReader!
Come vedete estende proprio BufferedReader, ed alcuni metodi utili per gestire la riga del documento.
In sostanza ci permette di visualizzare il numero di riga corrente, e di settare il numero di riga corrente:
- getLineNumber
- setLineNumber
Vediamo due esempi, partendo da un file di testo semplice:
ciao
come
stai?
Qui leggiamo tutte le righe e stampiamo il numero di riga:
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
Reader reader = new FileReader("test.txt");
try (LineNumberReader lineNumberReader = new LineNumberReader(reader)) {
String line = null;
while ((line = lineNumberReader.readLine()) != null) {
System.out.println(lineNumberReader.getLineNumber() + ": " + line);
}
}
} catch (IOException ex) {
ex.getMessage();
}
}
}
Risultato:
1: ciao
2: come
3: stai?
Adesso ci spostiamo prima di leggere il file:
import java.io.*;
public class Main {
public static void main(String[] args) {
try {
Reader reader = new FileReader("test.txt");
try (LineNumberReader lineNumberReader = new LineNumberReader(reader)) {
lineNumberReader.setLineNumber(1);
String line = null;
while ((line = lineNumberReader.readLine()) != null) {
System.out.println(lineNumberReader.getLineNumber() + ": " + line);
}
}
} catch (IOException ex) {
ex.getMessage();
}
}
}
Risultato:
2: ciao
3: come
4: stai?
Enjoy!
java bufferedreader linenumberreader getlinenumber setlinenumber
Commentami!