IO流(1)—之序列化与反序列化
来源:互联网 发布:ubuntu snmpwalk 编辑:程序博客网 时间:2024/06/05 20:33
1.概念
序列化:把Java对象转换为字节序列的过程称为对象的序列化
反序列化:把字节序列恢复为Java对象的过程称为对象的反序列化
注:只有实现了Serializable和Externalizable接口的类的对象才能被序列化
2.作用:
对象的字节序列永久地保存到硬盘上,通常存放在一个文件中;
网络上传送对象的字节序列。
3.流:
java.io.ObjectOutputStream代表对象输出流
- writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
java.io.ObjectInputStream代表对象输入流
- writeObject(Object obj)方法可对参数指定的obj对象进行序列化,把得到的字节序列写到一个目标输出流中。
4.步骤:
- 首先要有一个类,一个实现Serializable和Externalizable接口的类
序列化
- 创建文件输出流FileOutputStream
- 创建对象流ObjectOutStream
- 调用writeObject(Object obj)方法把对象作为参数传进去
- 最后调用flush()和close()方法关闭流
反序列化
- 创建文件输入流FileInputStream
- 创建对象流ObjectInputStream
- 对象流引用调用方法readObject()再强转成实现Serializable和Externalizable接口的类的类型
- 输出对象的属性
5.例子
package IO;/** * 对象序列化和反序列化 * 想要序列化某个对象,必须实现Serializable接口,该接口用于标记该类可以序列化 */import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class ObjectTest { public static void main(String[] args) throws Exception{ T t = new T(); t.k = 8; //序列化 FileOutputStream fos = new FileOutputStream("hello1.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(t); oos.flush(); oos.close(); //反序列化 FileInputStream fis = new FileInputStream("hello1.txt"); ObjectInputStream ois = new ObjectInputStream(fis); T tReader = (T)ois.readObject(); System.out.println(tReader.i+" "+tReader.j+" "+tReader.k+" "+tReader.d); }}class T implements Serializable{ int i = 0; int j = 9; double d = 2.3; int k = 0;}
0 0
- IO流(1)—之序列化与反序列化
- IO流之序列化与反序列
- IO流对象序列化与反序列化
- IO流丶序列化与反序列化
- IO —— 对象序列化与反序列化
- IO流之序列化和反序列化
- Java IO流之对象的序列化与反序列化
- 18、Java入门—Java IO流之对象的序列化和反序列化
- java.se.io.11.序列化与反序列化
- Java IO 序列化与反序列化
- Java IO 对象的序列化与反序列化
- 序列化与反序列
- 序列化与反序列
- IO流、序列化和反序列化
- IO学习(十二)序列化和反序列化
- Java中IO流的序列化与反序列化
- 关于IO流的分类及对象序列化与反序列化操作
- 对象的序列化与反序列化---IO学习笔记(四)
- 回溯法解决排列组合问题
- mongoDB-基础教程笔记(一)
- LinuxCon+ContainerCon+CloudOpen首次来华,国际开源盛会不容错过!
- osgearth2.8编译问题
- 用tree命令显示某个目录及其下属子目录
- IO流(1)—之序列化与反序列化
- React 各种组件关系通信
- JDK1.7和1.8新特性梳理备忘
- http状态码
- 一天记录
- 集成学习==>Bootstrap Bagging AdaBoost简介
- Android 控件属性之TextView
- P&M:Mysql事务(持续更新)
- 基于MPU6050姿态控制外设开发记录