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
   1380   1381   1382   1383   1384   1385   1386   1387   1388   1389   1390