需求:使用文件存储和读取对象
方法:实现 Serializable 接口
下面的例子将实现了Serializable接口的Person类添加到ArrayList中,再存储到文件,最后读取并输出。
import java.io.*;
import java.util.ArrayList;
public class TestIO {
public static void main(String[] args) throws IOException, ClassNotFoundException {
File file = new File("data.txt");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
Person person1 = new Person("Tom", 4);
Person person2 = new Person("Jerry", 2);
ArrayList<Person> list1 = new ArrayList<>();
list1.add(person1);
list1.add(person2);
oos.writeObject(list1);
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file));
ArrayList<Person> list2 = (ArrayList<Person>) ois.readObject();
ois.close();
for (Person p : list2) {
System.out.println(p.toString());
}
}
}
class Person implements Serializable {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "姓名:" + name + " 年龄:" + age;
}
}
输出一:文件
输出二:stdout


被折叠的 条评论
为什么被折叠?



