| 
     
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.io.Serializable; 
 
class MyClass implements Serializable { 
  String str; 
  double[] vals; 
  File fn; 
 
  public MyClass(String s, double[] nums, String fname) { 
    str = s; 
    vals = nums; 
    fn = new File(fname); 
  } 
 
  public String toString() { 
    String data = "  str: " + str + "\n  vals: "; 
 
    for (double d : vals) 
      data += d + " "; 
    data += "\n  fn: " + fn.getName(); 
 
    return data; 
  } 
} 
 
public class Main { 
  public static void main(String[] argv) throws Exception { 
    double v[] = { 1.1, 2.2, 3.3 }; 
    double v2[] = { 9.0, 8.0, 7.7 }; 
 
    MyClass obj1 = new MyClass("This is a test", v, "Test.txt"); 
    MyClass obj2 = new MyClass("Alpha Beta Gamma", v2, "Sample.dat"); 
 
    ObjectOutputStream fout = new ObjectOutputStream(new FileOutputStream("obj.dat")); 
    System.out.println("obj1:\n" + obj1); 
    fout.writeObject(obj1); 
    System.out.println("obj2:\n" + obj2); 
    fout.writeObject(obj2); 
    fout.close(); 
 
    ObjectInputStream fin = new ObjectInputStream(new FileInputStream("obj.dat")); 
    MyClass inputObj; 
 
    inputObj = (MyClass) fin.readObject(); 
    System.out.println("First object:\n" + inputObj); 
 
    inputObj = (MyClass) fin.readObject(); 
    System.out.println("Second object:\n" + inputObj); 
    fin.close(); 
  } 
} 
    
    |