java中讲讲ObjectInputStream的用法

ObjectInputStream的用法
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
马克-to-win:ObjectInputStream顾名思义就是可以从流中读入一个用户自定义的对象。一定要注意ObjectOutputStream与ObjectInputStream必须配合使用,且按同样的顺序。



例:2.5.1

import java.io.Serializable;
//类必须实现Serializable接口才可以被序列化, otherwise report error of java.io.NotSerializableException: J10.Employee
public class Employee implements Serializable {
    private String name;
    private int id;

    public Employee(String name,int id){
        this.name = name;
        this.id = id;
    }

    public void showInfo(){
        System.out.println("name:" + name + "\tid:" + id );
    }
}




例:2.5.2

import java.io.*;
public class TestMark_to_win {
    public static void main(String[] args) throws IOException{
            FileOutputStream fos = new FileOutputStream("c://data.txt");
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(new Employee("张三",1));
            oos.writeObject(new Employee("李四",2));
            oos.close();
    }
}


例:2.5.3

import java.io.*;
public class TestMark_to_win {
    public static void main(String[] args) throws IOException, ClassNotFoundException{
            FileInputStream fis = new FileInputStream("c://data.txt");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Employee e1 = (Employee)ois.readObject();
            Employee e2 = (Employee)ois.readObject();
              
            e1.showInfo();
            e2.showInfo();
            ois.close();
    }
}


输出结果是:

name:张三    id:1
name:李四    id:2