对象的序列化与反序列化Demo
2019独角兽企业重金招聘Python工程师标准>>>
这是个简单的Demo……
/**
* 对象的序列化与反序列化
* ps:
* 1. 要序列化的对象必须实现Serialzalbe接口(……我居然忘了)
* 2. 反序列化的is.readObject()方法读到文件末尾时,居然抛出EOFException而非返回特殊值(-1,null之类),JDKAPI也表示这很坑爹。
* @author garview
*
* @Date 2013-11-4上午11:36:28
*/
public class SerializeDemo {
public static void main(String[] args) {
try {
File file = new File("c:/test.java");
ser(file, intiData());
reverseSer(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
System.out.println("未找到文件");
} catch (IOException e) {
e.printStackTrace();
System.out.println("写入对象失败");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
// 1.序列化对象(初始化对象、搭建传输管道,写对象,关闭管道资源)
public static void ser(File file, ArrayList<Book> books)
throws FileNotFoundException, IOException {
// 搭建传输管道
if (!file.exists()) {
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream os = new ObjectOutputStream(fos);
// 写对象
for (Book temp : books) {
os.writeObject(temp);
}
// 写入null,方便反序列化时判断结束
os.writeObject(null);
os.close();
}
// 1.反序列化对象(初始化对象、搭建传输管道,写对象,关闭管道资源)
public static void reverseSer(File src) throws FileNotFoundException,
IOException, ClassNotFoundException {
FileInputStream fis = new FileInputStream(src);
ObjectInputStream is = new ObjectInputStream(fis);
ArrayList<Book> books = new ArrayList<Book>();
Object temp = null;
while (true) {
//注意读到文件末尾会抛出EOFException
temp = is.readObject();
if (temp == null) {
break;
}
books.add((Book) temp);
}
for (Book temp2 : books) {
System.out.println(temp2.toString());
}
is.close();
}
public static ArrayList<Book> intiData() {
// 初始化对象
Book one = new Book("西游释厄传", 90, 55.0);
Book two = new Book("西游释厄传2", 90, 55.0);
Book three = new Book("西游释厄传3", 90, 55.0);
ArrayList<Book> books = new ArrayList<Book>();
books.add(one);
books.add(two);
books.add(three);
return books;
}
转载于:https://my.oschina.net/u/1379006/blog/174057
对象的序列化与反序列化Demo相关推荐
- Java对象的序列化与反序列化
序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...
- java中对象的序列化和反序列化
[对象的序列化和反序列化 ] 1.定义: 序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才 ...
- Java 对象的序列化和反序列化
当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再 ...
- 对象的序列化与反序列化---IO学习笔记(四)
对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流,反序列化流 序列化流(ObjectOutputStream) ...
- js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind
数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...
- java对象的序列化和反序列化详细解释
java对象的序列化和反序列化是什么意思 1.序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结 ...
- 一文带你全面了解java对象的序列化和反序列化
本文分享自华为云社区<java中什么是序列化和反序列化?>,原文作者:dayu_dls . 这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍 ...
- 反序列化对象列表发生异常_面试官:你知道Java对象的序列化与反序列化背后的原理吗?...
序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...
- java反序列化多个对象_java 序列化与反序列化多个对象 抛出异常
jdk 1.8 IEDA 设置可以追加写入后,向目标文件序列化多个同一对象,再序列化出来时,因为反序列化时头部信息只读取一次,报出异常. 请问该怎么解决?或者代码写的有问题? import java. ...
- 从零开始学前端:json对象,对象的序列化和反序列化 --- 今天你学习了吗?(JS:Day15)
从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:字符串.数组的方法 - 今天你学习了吗?(JS:Day12/13/14) 文章目录 从零开始学前端:程序猿小 ...
最新文章
- 脑电分析系列[MNE-Python-18]| 生成模拟原始脑电数据
- 解决Ubuntu16.04重启进入initramfs
- c语言for循环的第三句,for循环语句的用法
- 925. Long Pressed Name 长按键入
- git 克隆远端分支,关联到本地,修改代码并提交到远程分支
- PPR context node destroy logic
- spring-boot 自定义启动图标彩蛋
- 发布nuget包的正确姿势---cicd自动打包发布
- 根据thickbox定制自己的遮罩层
- mysql数据库重做日志文件_mysql数据库重做日志
- WebSocket的简单实现
- 感恩节活动促销海报模板,摆好借势感恩节的姿势
- Process Explorer更新至v15.2
- 拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
- 小述银行软开~~(转)
- 网吧用电影服务器系统,网吧流媒体电影服务器搭建的解决方案
- womic网络错误_【无线麦克风(WO Mic)】无线麦克风(WO Mic)安卓版(Android)3.2下载_太平洋下载中心...
- 专访陈星汉:“游戏禅师” 的自我苛刻与孤独
- zooKeeper篇-zk的选举机制
- 国科大在线android版app,国科大心理app
热门文章
- 如何对 Oracle 数据泵(expdp/impdp) 进行 debug
- 提升网络销售转化率的10种方法
- P1441 砝码称重
- 胡明浩 160809313 (我就会三个)
- 30天React Native从零到IOS/Android双平台发布总结
- 1011. World Cup Betting (20)——PAT (Advanced Level) Practise
- vi 中插入当前时间
- JSP版LCX:端口转发神器 KPortTran
- pku 2251 Dungeon Master
- SQL Server2008表及字段描述信息处理示例