大虾门.有谁知道java 中的对象在序列化后保存到文件里面是保存了该对象实例的引用还是保存对象实例,还是别的,高手门有知道的帮帮忙解释下,先谢谢了.本人是个菜鸟.

解决方案 »

  1.   

    保存对象的实例,,
    其实可以想到的保存应用就不能达到序列化,持久化的目的了,,
    好好的看一下
    ObjectOutputStream和 ObjectInputStream的api文档,,写起来不是很难的,,
    加油,,楼主
      

  2.   

    以前学习过的个小例子,,发出来供你参考下
    是对一个对象的序列化,,注明:例子源于孙鑫老师的java无难事视频教程
    class ObjectSerialTest
    {
    public static void main(String[] args) throws Exception
    {
    Employee e1=new Employee("zhangsan",25,3000.50);
    Employee e2=new Employee("lisi",24,3200.40);
    Employee e3=new Employee("wangwu",27,3800.55);

    FileOutputStream fos=new FileOutputStream("employee.txt");
    ObjectOutputStream oos=new ObjectOutputStream(fos);
    oos.writeObject(e1);
    oos.writeObject(e2);
    oos.writeObject(e3);
    oos.close();

    FileInputStream fis=new FileInputStream("employee.txt");
    ObjectInputStream ois=new ObjectInputStream(fis);
    Employee e;
    for(int i=0;i<3;i++)
    {
    e=(Employee)ois.readObject();
    System.out.println(e.name+":"+e.age+":"+e.salary);
    }
    ois.close();
    }
    }class Employee implements Serializable
    {
    String name;
    int age;
    double salary;
    transient Thread t=new Thread();
    public Employee(String name,int age,double salary)
    {
    this.name=name;
    this.age=age;
    this.salary=salary;
    }
    private void writeObject(java.io.ObjectOutputStream oos) throws IOException
    {
    oos.writeInt(age);
    oos.writeUTF(name);
    System.out.println("Write Object");
    }
    private void readObject(java.io.ObjectInputStream ois) throws IOException
    {
    age=ois.readInt();
    name=ois.readUTF();
    System.out.println("Read Object");
    }}