Enregistrer et Restaurer des objets


objet serializable

Source de Rectangle9.java
import java.io.Serializable;
public class Rectangle9 
       implements Serializable {
  double x, y, largeur, hauteur;
  Rectangle9(double valX, double valY, 
             double valL, double valH) {
    x = valX; 
    y = valY; 
    largeur = valL;
    hauteur = valH;   
  }
  public String toString() {
    String v=",";
    return "("+x+v+y+v+largeur+v+hauteur+")";
  }
}

écrire des objets dans un fichier.

Source de EcrireFichier3.java
import java.io.*;
public class EcrireFichier3 {
  public static void main(String[] args)  {
     if (args.length!=1) {
       System.out.println("argument nom_de_fichier !");
       System.exit(0);
     }
     Fichier fichier= new Fichier(args[0]);
     if (fichier.ecrirePossible()) {
       try {
         ObjectOutputStream flotEcriture = 
             new ObjectOutputStream(
                new FileOutputStream(fichier));
         System.out.println("combien de rectangles ?");
         int combien= Clavier.lireInt();
         double x,y,l,h;
         Vector lesRectangles=new Vector();
         for (int i=0; i<combien; i++) {
           System.out.println("donnez un rectangle\n"
                             +"x y largeur hauteur\n");
           x= Clavier.lireDouble();
           y= Clavier.lireDouble();
           l= Clavier.lireDouble();
           h= Clavier.lireDouble();
           lesRectangles.add(new Rectangle9(x,y,l,h));
         }  
         flotEcriture.writeObject(lesRectangles);
         flotEcriture.close();
       } catch (IOException e) {
         System.out.println(" erreur :" + e.toString());
       }   
     } else
       System.out.println(args[0]+" "
                          +fichier.proprietes());
  }
}

lire des objets dans un fichier.

Source de LireFichier3.java
import java.io.*;
public class LireFichier3 {
  public static void main(String[] args)  {
     if (args.length!=1) {
       System.out.println("argument nom_de_fichier !");
       System.exit(0);
     }
     Fichier fichier= new Fichier(args[0]);
     if (!fichier.lirePossible()) {
       System.out.println(args[0]
             +" "+fichier.proprietes());
       System.exit(0);
     }
     try {
       ObjectInputStream flotLecture = 
             new ObjectInputStream(
                new FileInputStream(fichier));
       Object lu = flotLecture.readObject();
       if (lu instanceof Vector) {
         Vector lesRectangles=(Vector)lu;
         for (int i=0; i<lesRectangles.size(); i++) {
           Object elem = lesRectangles.elementAt(i);
           if (elem instanceof Rectangle9) 
             System.out.println("rectangle "
                      +((Rectangle9)elem).toString());
         }
         flotLecture.close();
       }
       else {
         System.out.println("erreur de type");
         System.exit(1);
       }
     } catch (Exception e) {
       System.out.println(" erreur :" +e.toString());
     }    
  }
}

Sérialisation

exercice