Page 1385 - Informatica dalla A a Z
P. 1385
FilelnputStream f = new FileInputStream("elenco.dat");
ObjectlnputStream fIN = new ObjectInputStream(f);
La chiusura di uno stream, sia di input che di output, viene fatta richiamando il metodo
dose nel seguente modo:
f.close();
Le operazioni che gestiscono l’I/O possono generare diverse eccezioni, per esempio
quando il metodo dose riscontra una situazione anomala, oppure quando l’apertura di uno
stream di input specifica un nome di file non esistente. Per questi motivi si devono racchiu-
dere tutte le istruzioni che gestiscono i file in un blocco try.. .catch che cattura le eccezioni.
try
{
// istruzione diI/O
}
catch(Exception e)
{
System.out.println( "Eccezione: " + e.getMessage() );
}
Dopo l’apertura dello stream di output, si possono utilizzare diversi metodi per la scrittura.
Ogni metodo memorizza sul file un particolare tipo di dato e assume la forma writeDafo.
fOUT.writeInt( 25400);
fOUT.writeDouble(12.36);
Prima di chiudere il file è importante eseguire il metodo flush, che serve per scrivere su
disco tutti i dati che sono attualmente contenuti nel buffer dello stream.
Il metodo di scrittura più importante è writeObject. Con questo metodo è possibile salvare
su di un file anche gli oggetti.
Esercizio: Memorizzare sul file elenco.dat le informazioni di 3 persone.
Persona.java
import java.io.*;
class Persona implements Serializable
{
public String nome;
public int eta;
// costruttore
public Persona(String nome, int eta)
{
this. nome = nome;
1381