对象的序列化与反序列化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) 文章目录 从零开始学前端:程序猿小 ...
最新文章
- c语言界面怎么加图形,「分享」C语言如何编写图形界面
- oracle怎么查询成绩学号,oracle学习(简单查询)
- 留下方便自己找,,,求导
- cpp判断输入为数字_猜数字小程序带你C语言入门
- 利用python爬虫(part11)--XpathHelper为啥不能全信之JS要闹哪般
- HTML5的非主体结构元素(header、footer、hgroup、assress)
- Java基本数据类型的传值
- 大厂都在拆中台了,为什么我们还死磕到底?
- javaweb实训第六天下午——Mybatis基础
- ac3168无线网卡驱动下载_REALTEK芯片无线网卡最新驱动!支持到10.15
- 问的书写规则是什么意思_汉字笔顺规则表
- 大学物理-热学-教学总结
- Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness
- 5. 强化学习之——策略优化
- ECCV 2020|3D-CVF多模态融合(LIDAR+CAMERA)
- 电脑开不了机系统应该如何恢复正常
- VScode常用插件(C/C++开发)
- 中国芯片人才大军在哪里?IEEE Fellow,投资人,创业者,工程师
- Java Class 是什么
- ADC0804工作原理
热门文章
- [转载]未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
- Winfrom 线程实现 http、https 文件下载 显示下载进度详情
- 面向对象设计模式与原则
- iOS clang: error: linker command failed with exit code 1 (use -v to see invocation)
- 内容超过7行显示查看全文
- 《结对-网页贪吃蛇游戏-需求分析》
- 转:在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法...
- oracle单行函数 之 字符函数
- 40行代码的人脸识别实践
- WIN server 2003 安装(AD)域控制器