import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; public class ObjectStreamExample implements Serializable { public static final long serialVersionUID = 243; private int data1; private String data2; private Person person; public ObjectStreamExample(int data1, String data2, Person person) { this.data1 = data1; this.data2 = data2; this.person = person; } public static void main(String[] args) { ObjectStreamExample example = new ObjectStreamExample(42, "blue", new Person(24, 5.9, "Bob")); try { ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("temp.txt")); out.writeObject(example); out.close(); ObjectInputStream in = new ObjectInputStream(new FileInputStream("temp.txt")); ObjectStreamExample recovered = (ObjectStreamExample)in.readObject(); System.out.println("Recovered data1: " + recovered.data1 + " data2: " + recovered.data2 + " person: " + recovered.person); } catch (Exception e) { e.printStackTrace(); } } } class Person implements Serializable { public static final long serialVersionUID = 567; private int age; private double height; private String name; public Person(int age, double height, String name) { this.age = age; this.height = height; this.name = name; } public String toString() { return "Age: " + age + " Height: " + height + " Name: " + name; } }