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. 脑电分析系列[MNE-Python-18]| 生成模拟原始脑电数据
  2. 解决Ubuntu16.04重启进入initramfs
  3. c语言for循环的第三句,for循环语句的用法
  4. 925. Long Pressed Name 长按键入
  5. git 克隆远端分支,关联到本地,修改代码并提交到远程分支
  6. PPR context node destroy logic
  7. spring-boot 自定义启动图标彩蛋
  8. 发布nuget包的正确姿势---cicd自动打包发布
  9. 根据thickbox定制自己的遮罩层
  10. mysql数据库重做日志文件_mysql数据库重做日志
  11. WebSocket的简单实现
  12. 感恩节活动促销海报模板,摆好借势感恩节的姿势
  13. Process Explorer更新至v15.2
  14. 拓端tecdat:R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化
  15. 小述银行软开~~(转)
  16. 网吧用电影服务器系统,网吧流媒体电影服务器搭建的解决方案
  17. womic网络错误_【无线麦克风(WO Mic)】无线麦克风(WO Mic)安卓版(Android)3.2下载_太平洋下载中心...
  18. 专访陈星汉:“游戏禅师” 的自我苛刻与孤独
  19. zooKeeper篇-zk的选举机制
  20. 国科大在线android版app,国科大心理app

热门文章

  1. 如何对 Oracle 数据泵(expdp/impdp) 进行 debug
  2. 提升网络销售转化率的10种方法
  3. P1441 砝码称重
  4. 胡明浩 160809313 (我就会三个)
  5. 30天React Native从零到IOS/Android双平台发布总结
  6. 1011. World Cup Betting (20)——PAT (Advanced Level) Practise
  7. vi 中插入当前时间
  8. JSP版LCX:端口转发神器 KPortTran
  9. pku 2251 Dungeon Master
  10. SQL Server2008表及字段描述信息处理示例