import java.io.File; import java.io.IOException; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import javax.swing.JOptionPane; /** Questo programma verifica la serializzazione di un oggetto di tipo Purse. Se esiste un file con dati serializzati di un borsellino, esso viene caricato; altrimenti il programma parte con un nuovo borsellino. Ulteriori monete vengono aggiunte al borsellino, quindi i dati del borsellino vengono memorizzati. */ public class PurseTest { public static void main(String[] args) throws IOException, ClassNotFoundException { Purse myPurse; File f = new File("purse.dat"); if (f.exists()) { ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); myPurse = (Purse)in.readObject(); in.close(); } else myPurse = new Purse(); // aggiungiamo monete al borsellino myPurse.add(new Coin(NICKEL_VALUE,"nickel")); myPurse.add(new Coin(DIME_VALUE,"dime")); myPurse.add(new Coin(QUARTER_VALUE,"quarter")); double totalValue = myPurse.getTotal(); System.out.println("The total is" + totalValue); ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f)); out.writeObject(myPurse); out.close(); } private static final double NICKEL_VALUE = 0.05; private static final double DIME_VALUE = 0.1; private static final double QUARTER_VALUE = 0.25; }