java对象序列化与反序列化
来源:互联网 发布:苹果打击垫软件 编辑:程序博客网 时间:2024/06/08 11:17
序列化与反序列化的概念
序列化:把对象转换为字节序列的过程。
反序列化:把字节序列恢复为对象的过程。
对象序列化主要用途
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; }}
运行结果:
0 0
- Java 对象的序列化与反序列化实践
- JAVA对象序列化与反序列化
- Java对象的序列化与反序列化
- java笔记九:对象序列化与反序列化
- Java之对象序列化与反序列化
- Java 对象序列化与反序列化知识点汇总
- Java对象的序列化与反序列化
- java对象序列化与反序列化
- Java对象的序列化与反序列化
- java对象序列化与反序列化总结
- 【Java】对象的序列化与反序列化
- java对象的序列化与反序列化
- java对象序列化与反序列化
- Java对象的序列化与反序列化
- Java对象的序列化与反序列化
- Java对象数组序列化与反序列化
- Java对象的序列化与反序列化
- Java对象的序列化与反序列化
- Java 8新增的日期、时间格式器
- MySQL5.6生产库自动化安装部署
- 每天一条linux--whereis
- 你必须知道的C语言问题
- Android 6 权限 详解
- java对象序列化与反序列化
- 实验二-输出希腊字母表
- PHP数组键值使用单引号和双引号和无符号的区别
- Android自定义控件:动画类(十二)----layoutAnimation与gridLayoutAnimation
- CPU time与WALL time
- 使用adb pull 手机中的文件
- (五下)作用域,及其特点,$watch方法,$digest方法,$apply方法
- 随机生成一个小于等于N的数
- 常用排序的简单表格分析