import java.io.*;
import java.util.ArrayList;
public class SerializableTest {
public static void main(String[] args) throws Exception{
//保存对象的文件,这个要根据自己需要重新调整的,我这个是在Linux下的目录结构
File f = new File("/home/lsx/person.dat");
//创建一个集合类,用于存放person对象
ArrayList ps = new ArrayList();
//将10个person对象放入到集合中
for(int i=0; i<10; i++)
ps.add(new Person("person"+i,i));
//因为ArrayList类已实现了序列化,所以可以将ArrayList对ps存入文件
//也就是说,现在保存的是一个集合,里边的内容是Person对象
IO.save(ps, f);
//从文件中将这个集合读取出来
Object o = IO.load(f);
ArrayList list = (ArrayList)o;
//打印这个集合中的内容
for(int i=0; i<list.size(); i++)
System.out.println(list.get(i));
}
}
class IO{
//保存对象到文件
static void save(Object obj,File f) throws Exception{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(obj);
oos.flush();
oos.close();
}
//从文件读取对象
static Object load(File f) throws Exception{
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(f));
Object obj = ois.readObject();
ois.close();
return obj;
}
}
//要想Person能以对象的形式保存到文件,Person类必须实现序列化:Serializable
class Person implements Serializable{
private static final long serialVersionUID = 6213933727640755594L;
private String name;
private int id;
Person(String n,int i){
name=n;id=i;
}
public String getName(){return name;}
public int getId(){return id;}
public String toString(){return "name:"+name+" id:"+id;}
}
|