package fileandStream;
//SDDemo1.java
import java.io.*;
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 SDDemo1
{
public static void main (String [] args)
{
Car c1 = new Car ("Some car", 4, new Engine (6));
ObjectOutputStream oos = null;
//对象的串行化
try
{
FileOutputStream fos = new FileOutputStream ("car.ser");
oos = new ObjectOutputStream (fos);
oos.writeObject (c1);
}
catch (Exception e)
{
System.out.println (e);
return;
}
finally
{
if (oos != null)
try
{
oos.close ();
}
catch (IOException e)
{
}
}
ObjectInputStream ois = null;
//对象的反串行化
try
{
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 ());
}
catch (Exception e)
{
System.out.println (e);
}
finally
{
if (ois != null)
try
{
ois.close ();
}
catch (IOException e)
{
}
}
}
}