martedì 8 giugno 2010

Java: lettura del testo

Solitamente ci si aspetta di trovare una classe opposta a PrintWriter che svolga quindi l'operazione di lettura del testo (da un file). Una tale classe ovviamente non esiste (altrimenti non iniziavo il discorso in questo modo) e così per la lettura del testo si ricorre alla classe BufferedReader che implementa fra i suoi metodi anche il metodo readLine(). Anche in questo caso bisogna indirizzare l'oggetto che compierà la lettura verso un lettore che, in questo caso, sarà dato dalla classe FileReader:

FileReader f=new FileReader("file.txt");
BufferedReader in=new BufferedReader(f);

La lettura dell'intero file avviene quindi ripetendo la chiamata a readLine(), finché essa non ritorna il valore null. La linea letta verrà convertita automaticamente in stringa. E se il file non esiste o non viene trovato? I metodi detti sopra lanciano un eccezione IOExcpetion che va intercettata come al solito fra i blocchi try e catch.

import java.io.*;

public class readFile {
   public static void main(String[] args) {
      String fileName="/home/light-kun/workspace/testFile/bin/file.txt";
      String lineBuffer;
      String message="";
      int i=0;
      try {
         FileReader f=new FileReader(fileName);
         BufferedReader in=new BufferedReader(f);
         while ((lineBuffer=in.readLine())!=null) {
            message=message+lineBuffer;
            i++;
         }
         System.out.println("Contenuto del file:\n"+message);
         in.close();
      }
      catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Ecco cosa dice il terminale all'esecuzione del programma:

light-kun@ryuk:~/workspace/testFile/bin$ java readFile
Contenuto del file:
Hello world!

Nessun commento:

Posta un commento