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.
javajava TestObjectStream