Lettura file in Java

Lettura file in Java

Articolo sistemato.

Dopo aver esaminato la scrittura dei file passiamo alla lettura.

Supponiamo di avere un file prova.txt, creato magari seguendo l'altro articolo.

Le operazioni che eseguiremo sono:

  • creazione di un oggetto FileReader per l'apertura del file
  • creazione di un eggetto BufferedReader associato all'oggetto FileReader per la definizione di un buffer dati
  • lettura del contenuto del file attraverso l'invocazione del metodo ReadLine()

Se il file che si cerca di aprire non esiste viene lanciata una FileNotFoundException.

Vediamo il codice:

public class Lettura {

    public static String leggiFile(String nome) {
        String a = "";
        String temp = "";
        try {
            FileReader file = new FileReader(nome);
            BufferedReader buffer = new BufferedReader(file);
            while ((temp = buffer.readLine()) != null) {
                a += temp + "n";
            }
            buffer.close();
        } catch (FileNotFoundException errore) {
            System.out.println(errore.getMessage());
        } finally {
            return a;
        }
    }

    public static void main(String[] args) {
        System.out.println(leggiFile("prova.txt"));
    }
}

Creiamo un metodo statico passandogli un parametro String.

Creo due variabili di tipo String vuote.

Apro il blocco try.

Come detto sopra creo un oggetto di tipo FileReader passandogli la variabile creata col metodo (nome).

Creo un oggetto BufferedReader associandolo all'oggetto FileReader (file).

A quasto punto creo un ciclo while che mi servirà per leggere tutte le righe del file creato.

Il comportamento di default non prevede la lettura di tutte le righe; così invece il ciclo va avanti a leggere tutte le righe fino a che non trova una riga vuota (!=null).

Con la riga a+=temp+"n"; non faccio altro che andare a leggere tutte le righe "aggiungendole" a quelle precedenti e andando a capo ("n").

Chiudo il flusso buffer.

Apro il catch impostando l'eccezione FileNotFoundException.

Ed apro il finally passando a return la variabile a;

Nel metodo main non faccio altro che richiamare il metodo creato in precedenza passandogli il percorso del file da leggere.

Ovviamente questo è solo un esempio che è sicuramente da migliorare e modificare secondo le proprie esigenze.

Alla prossima!