Per ricevere / scrivere in ingresso dei dati, un'applicazione apre uno stream collegato a una sorgente di informazioni (file, memoria, socket, ...) da cui legge / scrive squenzialmente le informazioni
Il pacchetto **java.io** è composto da due sezioni principali
public FileReader(String nomeFile) throws FileNotFoundException
Crea un oggetto per leggere uno stream di caratteri collegato con il file il cui nome è specificato come argomento. Se il file con tale nome non esiste, il metodo solleva l'eccezione controllata FileNotFoundException
public int read() throws IOException //legge un carattere dallo stream. Se si è raggiunta la fine del file restituisce -1
public int read(char[] buf) throws IOException //legge una sequenza di caratteri della stessa lunghezza dell'array specificato come argomento e li memorizza nelle posizioni successive dell'array
public void close() throws IOException //chiude lo stream che esegue il metodo.
Esempio:
import prog.io.*;
import java.io.FileReader;
import java.io.IOException;
public class VisualizzaFile{
public static void main(String[] args) throws IOException {
ConsoleOutputManager out = new ConsoleOutputManager();
FileReader frd = new FileReader(args[0]); //costruzione stream
int i;
while((i = frd.read()) != -1) //lettura e visualizzazione
out.print((char)i);
frd.close(); //chiusura stream
}
}
Permette di leggere testo da uno stream di caratteri fornendo un meccanismo di bufferizzazione
public BufferedReader(FileReader frd)
public String readLine() throws IOException //legge una linea di testo. Se si è raggiunta la fine dello stream restituisce null
public void close() throws IOException
Esempio:
FileReader frd = new FileReader(args[0]);
BufferedReader bfr = new BufferedReader(frd);
String str;
while((str = bfr.readLine()) != null)
out.println(str);
bfr.close();
frd.close();