实例分析:例3:保存所有的Person对象到文件并以对象的方式读出来

2014-11-24 07:28:28 · 作者: · 浏览: 3

1 问题分析

本题中需要对文件读,写对象数据,需要使用到与对象有关的流ObjectInputStream/ObjectOutputStream。

2 使用对象的读写流

ObjectOutputStream用于将一个对象输出,输出对象使用的方法为writeObject(Object obj)

ObjectInputStream用于读取一个对象,读取对象使用的方法为readObject()

注意: 被读写的对象必须是已序列化的类的对象,即要实现要Serializable接口。

3 编写代码

[java]
import java.io.*;
import java.util.*;

class Person implements Serializable {
String name = null;

public Person(String s) {
name = s;
}

public String toString() {
return name;
}
}

public class TestObjectStream {
public static void main(String[] args) {
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
try {
File f = new File("date.ser");
oos = new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(new Person("andy"));
oos.close();

ois = new ObjectInputStream(new FileInputStream(f));
Person d = (Person) ois.readObject();
System.out.println(d);
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.util.*;

class Person implements Serializable {
String name = null;

public Person(String s) {
name = s;
}

public String toString() {
return name;
}
}

public class TestObjectStream {
public static void main(String[] args) {
ObjectOutputStream oos = null;
ObjectInputStream ois = null;
try {
File f = new File("date.ser");
oos = new ObjectOutputStream(new FileOutputStream(f));
oos.writeObject(new Person("andy"));
oos.close();

ois = new ObjectInputStream(new FileInputStream(f));
Person d = (Person) ois.readObject();
System.out.println(d);
ois.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}

4 编译运行

javac TestObjectStream.java

java TestObjectStream

摘自 java教程