Lettura da file carattere per carattere

Si usano oggetti chiamati FileReader, che vengono creati in questo modo:

    FileReader fr;
    fr=new FileReader("prova.txt");

Queste due istruzioni aprono il file che si chiama prova.txt.

Una volta aperto il file, si può leggere un carattere per volta usando il metodo read:

    char c;

    c=(char) fr.read();

Ogni volta che si esegue fr.read() viene letto un nuovo carattere.

Il programma LetturaCaratteri.java legge e stampa i primi tre caratteri del file prova.txt

import java.io.*;

class LetturaCaratteri {
  public static void main(String args[])
  throws IOException {
    FileReader fr;
    fr=new FileReader("prova.txt");

    char c;

    c=(char) fr.read();
    System.out.println("Primo carattere: "+c);

    c=(char) fr.read();
    System.out.println("Secondo carattere: "+c);

    c=(char) fr.read();
    System.out.println("Terzo carattere: "+c);
  }
}

Se il compilatore segnala l'errore "possible loss of precision..." vuol dire che manca la parte (char) davanti a fr.read().

Esercizio

Realizzare un programma che legge e stampa i primi dieci caratteri del file prova.txt

Abbiamo già visto come leggere tre caratteri. Basta ripetere tre volte l'istruzione fr.read().

Quando un'operazione va fatta molte volte, conviene usare un ciclo. Si tratta quindi di ripetere l'istruzione dieci volte.

Il programma LeggiDieci.java risolve il problema usando un ciclo.

import java.io.*;

class LeggiDieci {
  public static void main(String args[])
  throws IOException {
    FileReader fr;
    fr=new FileReader("prova.txt");

    char c;
    int i;

    for(i=0; i<10; i++) {
      c=(char) fr.read();
      System.out.println(c);
    }
  }
}