序列化和反序列化:
- package com.kxg_02;
- import java.io.EOFException;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutputStream;
- /*
- * 序列化流:把对象按照流一样的方式存入文本文件或者网络中传输。 对象--流数据(ObjectOutputStream)
- * 反序列化流:把文本文件中的流对象数据或者网络中的流对象数据还原成对象。流数据--对象(ObjectInputStream)
- */
- public class ObjectStreamDemo {
- public static void main(String[] args) throws IOException,
- ClassNotFoundException {
- write();
- read();
- }
- private static void read() throws IOException, ClassNotFoundException {
- // 创建反序列化流
- ObjectInputStream ois = new ObjectInputStream(new FileInputStream(
- "oos.txt"));
- try {
- // 不知道要运行几次用while,最后会报一个EOFException的错误,自己做一下处理就行。
- while(true)
- {
- Object obj = ois.readObject();
- System.out.println(obj);
- }
- } catch (EOFException e) {
- System.out.println("反序列化结束!");
- }
- }
- private static void write() throws IOException {
- // 创建序列化流
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
- "oos.txt"));
- // 创建对象
- Person p1 = new Person("李延旭", 20);
- Person p2 = new Person("任兴亚", 23);
- Person p3 = new Person("赵磊", 20);
- Person p4 = new Person("王澳", 21);
- // 把对象添加到流中
- oos.writeObject(p1);
- oos.writeObject(p2);
- oos.writeObject(p3);
- oos.writeObject(p4);
- oos.close();
- }
- }
复制代码
|
|