看代码吧:
package demo49;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
/**
* 为了方便测试,现将代码都写到一个类中了。以下是需要注意的两点:
* 1、对象中的transient和static类型成员变量不会被读取和写入
* 2、实现Serializable接口
* @author mengfeiyang
*
*/
class DataBean implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private int id;
private String name;
public DataBean(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class ObjectStreamTest {
public static void main(String[] args) throws Exception {
DataBean db1 = new DataBean(1,"test1");
DataBean db2 = new DataBean(2,"test2");
DataBean db3 = new DataBean(3,"test3");
DataBean db4 = null;
DataBean db5 = new DataBean(5,"test5");
File file = new File("object.txt");
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(db1);
oos.writeObject(db2);
oos.writeObject(db3);
oos.writeObject(db4);
oos.writeObject(db5);
oos.close();
FileInputStream fis = new FileInputStream(file);
ObjectInputStream ois = new ObjectInputStream(fis);
while(true){
try{
DataBean dbn = (DataBean) ois.readObject();
System.out.println(dbn.getId()+" -- "+dbn.getName());
}catch(EOFException e){
break;
}catch(NullPointerException ee){
continue;
}
}
ois.close();
}
}
运行结果:
1 -- test1
2 -- test2
3 -- test3
5 -- test5