Java-SE-序列化
来源:互联网 发布:怎么选购洗衣机知乎 编辑:程序博客网 时间:2024/06/08 05:10
一、定义
序列化是指将对象转化为字节序列的过程
反序列化是指将字节序列转化为对象的过程
二、API
java.io.ObjectOutputStream代表对象输出流,它的writeObject(Object obj)方法可对参数指定的obj对象进行序列化。
java.io.ObjectInputStream代表对象输入流,readObject()方法可从字节序列中读取一个对象。
只有实现了Serializeable接口的类才可以被序列化/反序列化。
实现序列化的步骤
1)创建对象输出流,可以包装其他输出流,如文件输出流
2)通过writeObject(obj)方法序列化对象
实现反序列化步骤
1)创建对象输入流,可以包装其他目标输入流,如文件输入流
2)通过readObject()方法反序列化对象
三、实例
下面程序通过读取book.txt文件实例化对象并添加到list中,然后分别使用序列化和反序列方法(反序列化要从序列化得到的文件中读取对象输入流信息)
package test_1;import java.io.Serializable;public class Book implements Serializable{/** * */private static final long serialVersionUID = 1L;private int id;private String name;private String version;private float price;private int sale;public Book() {super();}public Book(int id, String name, String version, float price, int sale) {super();this.id = id;this.name = name;this.version = version;this.price = price;this.sale = sale;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getVersion() {return version;}public void setVersion(String version) {this.version = version;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public int getSale() {return sale;}public void setSale(int sale) {this.sale = sale;}public String toString(){return "id: "+ id + " name: "+name+" price " +price;}}
package test_1;import java.io.Serializable;public class Book implements Serializable{/** * */private static final long serialVersionUID = 1L;private int id;private String name;private String version;private float price;private int sale;public Book() {super();}public Book(int id, String name, String version, float price, int sale) {super();this.id = id;this.name = name;this.version = version;this.price = price;this.sale = sale;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getVersion() {return version;}public void setVersion(String version) {this.version = version;}public float getPrice() {return price;}public void setPrice(float price) {this.price = price;}public int getSale() {return sale;}public void setSale(int sale) {this.sale = sale;}public String toString(){return "id: "+ id + " name: "+name+" price " +price;}}
阅读全文
0 0
- Java-SE-序列化
- 【Java SE】对象的序列化和反序列化
- java.se.io.11.序列化与反序列化
- 【Java SE】对象的序列化与反序列化3:SerialversionUID
- 【Java SE】对象的序列化和反序列化2
- 话说JAVA SE 序列化(serializable)与 外部化(externalizable)简单实例
- Java SE学习笔记:序列化与反序列化,其他传输流
- java se
- Java SE
- java se
- java se
- java se
- JAVA SE
- JAVA SE
- 《Java SE》初学Java
- 【Java SE】认识Java
- Java SE 中的技术
- Java SE 简单介绍
- 虚拟键码
- JS-Grid插件使用中文解读
- RocketMQ 初次尝试受挫篇【ssl错误】
- PC 远程控制 android手机的方法之一VNC
- c语言第七次练习题
- Java-SE-序列化
- API2
- python | 读入二进制文件生成曲线图的小程序
- Linux用户管理详解
- 详解SpringBoot集成jsp(附源码)以及遇到的坑
- 2017/12/15
- 欢迎使用CSDN-markdown编辑器
- 屏蔽kindEditor编辑器编辑图片时自动给图片宽高--解决方案
- android插件自定义之多渠道打包插件(支持微信资源混淆andResGuard)