* 序列化:ObjectOutputStream
* 只能将支持 java.io.Serializable 接口的对象写入流中
* 将某个对象写入到文本文件中(使用序列化流对象)或者是该类对象在网络中传输:对象--->数据流
* 成员方法:
* public final void writeObject(Object obj)throws IOException
* 将该对象写入流数据中
*
*
* 反序列化:ObjectInputStream
* 将网络中的数据流--->对象:流数据还原成对象
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class ObjectStreamDemo {
public static void main(String[] args) throws IOException, ClassNotFoundException {
//序列化:将对象写入流数据中
// write();
//反序列化:将流数据-->对象
read();
}
private static void read() throws FileNotFoundException, IOException, ClassNotFoundException {
//创建反序列化流对象
ObjectInputStream ois=new ObjectInputStream(
new FileInputStream("oos.txt"));
//将流数据转换成对象
Object obj=ois.readObject();
//输出
System.out.println(obj);
//释放资源
ois.close();
}
private static void write() throws IOException, IOException {
//创建序列化流对象
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("oos.txt"));
//创建Person对象
Person p=new Person("张三",50);
oos.writeObject(p);
//关闭资源
oos.close();
}
}
import java.io.Serializable;
public class Person implements Serializable{
private String name;
private transient int age;//age不会参与序列化操作
public Person() {
super();
// TODO Auto-generated constructor stub
}
public Person(String name, int age) {
super();
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 "Person [name=" + name + ", age=" + age + "]";
}
}



