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