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+")"; } } |
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()); } } |
$ java EcrireFichier3 resulto combien de rectangles ? 2 donnez un rectangle x y largeur hauteur 1 2 3 4 donnez un rectangle x y largeur hauteur 5 6 7 8 |
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()); } } } |
$ java LireFichier3 resulto rectangle (1.0,2.0,3.0,4.0) rectangle (5.0,6.0,7.0,8.0) |