Leggere file in Java con LineNumberReader

Mattepuffo's logo
Leggere file in Java con LineNumberReader

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!


Condividi

Commentami!