import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Engine implements Serializable {
private int numCylinders;
Engine(int numCylinders) {
this.numCylinders = numCylinders;
}
int getNumCylinders() {
return numCylinders;
}
}
class Car implements Serializable {
private int numTires;
private Engine e;
private String name;
Car(String name, int numTires, Engine e) {
this.name = name;
this.numTires = numTires;
this.e = e;
}
int getNumTires() {
return numTires;
}
Engine getEngine() {
return e;
}
String getName() {
return name;
}
}
class Main {
public static void main(String[] args) throws Exception {
Car c1 = new Car("Some car", 4, new Engine(6));
ObjectOutputStream oos = null;
FileOutputStream fos = new FileOutputStream("car.ser");
oos = new ObjectOutputStream(fos);
oos.writeObject(c1);
ObjectInputStream ois = null;
FileInputStream fis = new FileInputStream("car.ser");
ois = new ObjectInputStream(fis);
Car c2 = (Car) ois.readObject();
System.out.println("Number of tires = " + c2.getNumTires());
System.out.println("Number of cylinders = " + c2.getEngine().getNumCylinders());
System.out.println("Name = " + c2.getName());
}
}