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相关推荐

  1. Java对象的序列化与反序列化

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如文件或是内存缓冲区等.在网络传输过程中,可以是字节或是 ...

  2. java中对象的序列化和反序列化

    [对象的序列化和反序列化 ] 1.定义: 序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才 ...

  3. Java 对象的序列化和反序列化

    当两个进程在进行远程通信时,彼此可以发送各种类型的数据.无论是何种类型的数据,都会以二进制序列的形式在网络上传送.发送方需要把这个Java对象转换为字节序列,才能在网络上传送:接收方则需要把字节序列再 ...

  4. 对象的序列化与反序列化---IO学习笔记(四)

    对象的序列化,反序列化 对象的序列化: 就是将Object转换成byte序列 对象的反序列化: 将byte序列转换成Object 序列化流,反序列化流 序列化流(ObjectOutputStream) ...

  5. js笔记(三)ES5、ES5新增的数组的方法、字符串的方法、字符编码、对象的序列化和反序列化、bind

    数组方法.字符串方法总结 大目录 小目录 一.ES5严格模式 1. 严格模式: 2. 严格模式的行为变更: 二.ES5新增的数组的方法 1. 判断是否为数组:Array.isArray(): 2. 判 ...

  6. java对象的序列化和反序列化详细解释

    java对象的序列化和反序列化是什么意思 1.序列化是干啥用的? 序列化的原本意图是希望对一个Java对象作一下"变换",变成字节序列,这样一来方便持久化存储到磁盘,避免程序运行结 ...

  7. 一文带你全面了解java对象的序列化和反序列化

    本文分享自华为云社区<java中什么是序列化和反序列化?>,原文作者:dayu_dls . 这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍 ...

  8. 反序列化对象列表发生异常_面试官:你知道Java对象的序列化与反序列化背后的原理吗?...

    序列化与反序列化 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程.一般将一个对象存储至一个储存媒介,例如档案或是记亿体缓冲等.在网络传输过程中,可以是字节或是 ...

  9. java反序列化多个对象_java 序列化与反序列化多个对象 抛出异常

    jdk 1.8 IEDA 设置可以追加写入后,向目标文件序列化多个同一对象,再序列化出来时,因为反序列化时头部信息只读取一次,报出异常. 请问该怎么解决?或者代码写的有问题? import java. ...

  10. 从零开始学前端:json对象,对象的序列化和反序列化 --- 今天你学习了吗?(JS:Day15)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(JS) 复习:从零开始学前端:字符串.数组的方法 - 今天你学习了吗?(JS:Day12/13/14) 文章目录 从零开始学前端:程序猿小 ...

最新文章

  1. c语言界面怎么加图形,「分享」C语言如何编写图形界面
  2. oracle怎么查询成绩学号,oracle学习(简单查询)
  3. 留下方便自己找,,,求导
  4. cpp判断输入为数字_猜数字小程序带你C语言入门
  5. 利用python爬虫(part11)--XpathHelper为啥不能全信之JS要闹哪般
  6. HTML5的非主体结构元素(header、footer、hgroup、assress)
  7. Java基本数据类型的传值
  8. 大厂都在拆中台了,为什么我们还死磕到底?
  9. javaweb实训第六天下午——Mybatis基础
  10. ac3168无线网卡驱动下载_REALTEK芯片无线网卡最新驱动!支持到10.15
  11. 问的书写规则是什么意思_汉字笔顺规则表
  12. 大学物理-热学-教学总结
  13. Spring Boot 2.3.0配置Graceful-Shutdown,Readiness和Liveness
  14. 5. 强化学习之——策略优化
  15. ECCV 2020|3D-CVF多模态融合(LIDAR+CAMERA)
  16. 电脑开不了机系统应该如何恢复正常
  17. VScode常用插件(C/C++开发)
  18. 中国芯片人才大军在哪里?IEEE Fellow,投资人,创业者,工程师
  19. Java Class 是什么
  20. ADC0804工作原理

热门文章

  1. [转载]未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。
  2. Winfrom 线程实现 http、https 文件下载 显示下载进度详情
  3. 面向对象设计模式与原则
  4. iOS clang: error: linker command failed with exit code 1 (use -v to see invocation)
  5. 内容超过7行显示查看全文
  6. 《结对-网页贪吃蛇游戏-需求分析》
  7. 转:在Linux中Oracle安装成功后,首次启动使用时,会出现的一些问题总结和解决办法...
  8. oracle单行函数 之 字符函数
  9. 40行代码的人脸识别实践
  10. WIN server 2003 安装(AD)域控制器