java对象序列化与反序列化
2016-09-06 10:45
267 查看
序列化与反序列化的概念
序列化:把对象转换为字节序列的过程。
反序列化:把字节序列恢复为对象的过程。
对象序列化主要用途
1:把内存中的对象保存到硬盘中的一个文件或数据库中;
2:利用套接字在网络上传送对象的字节序列;
3:通过RMI传输对象。
实现
利用JDK类库中的序列化API。其中,
对象序列化步骤大致如下:
1) 创建一个对象输出流ObjectOutputStream,它可以包装一个其他类型的目标输出流,比如文件输出流FileInputStream;
2) 通过对象输出流的writeObject()方法写对象。writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
对象反序列化的步骤大致如下:
1) 创建一个对象输入流ObjectInputStream,它可以包装一个其他类型的源输入流,比如文件输入流FileInputStream;
2) 通过对象输入流的readObject()方法读取对象。readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。
运行结果:
序列化:把对象转换为字节序列的过程。
反序列化:把字节序列恢复为对象的过程。
对象序列化主要用途
1:把内存中的对象保存到硬盘中的一个文件或数据库中;
2:利用套接字在网络上传送对象的字节序列;
3:通过RMI传输对象。
实现
利用JDK类库中的序列化API。其中,
对象序列化步骤大致如下:
1) 创建一个对象输出流ObjectOutputStream,它可以包装一个其他类型的目标输出流,比如文件输出流FileInputStream;
2) 通过对象输出流的writeObject()方法写对象。writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
对象反序列化的步骤大致如下:
1) 创建一个对象输入流ObjectInputStream,它可以包装一个其他类型的源输入流,比如文件输入流FileInputStream;
2) 通过对象输入流的readObject()方法读取对象。readObject()方法从一个源输入流中读取字节序列,再把它们反序列化为一个对象,并将其返回。
import java.io.*; public class AccountSerializable { public static void main(String[] args)throws Exception { // 相对路径,也可以写绝对路径 File f = new File("objectFile.obj"); // serialization ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(f)); Account Account1 = new Account("Zhang3", 1000); Account Account2 = new Account("Li4", 2000); out.writeObject(Account1); out.writeObject(Account2); out.close(); // deserialization ObjectInputStream in = new ObjectInputStream(new FileInputStream(f)); Account obj1 = (Account)in.readObject(); System.out.println("Account1=" + obj1); Account obj2 = (Account)in.readObject(); System.out.println("Account2=" + obj2); in.close(); } } // 实现Serializable接口 class Account implements Serializable { private String name; private double balance; public Account(String name, double balance) { this.name = name; this.balance = balance; } public String toString() { return "name=" + name + ", balance=" + balance; } }
运行结果:
相关文章推荐
- Java对象序列化
- java对象序列化学习笔记
- 通过socket连接传递java对象(对象序列化
- java对象序列化(二)
- Java对象序列化(一)
- java对象序列化学习笔记(z)
- java对象序列化学习笔记
- Java学习之对象序列化(二)
- RoyalAjax(三),Java对象的序列化
- 小谈java中的对象序列化
- JAVA的对象序列化
- Java学习之对象序列化(二)
- Java学习之对象序列化
- 通过socket连接传递java对象(对象序列化)
- Java中如何将XML对象反序列化
- [Java]java对象序列化学习笔记
- JAVA对象序列化保存为XML文件的工具类
- 关于 Ajax 的 Java 对象序列化 及获得数据后如何展现出来
- 将java的对象序列化成文件,并从文件中反序列化。
- java对象序列化学习笔记(zz)