[java]代码库import java.io.*;

/*

* SerializableObject.java

*

* Created on 2006年8月23日, 上午11:26

*

* 对象串行化

*   对象通过写出描述自己状态的数值来记录自己,这个过程叫做对象串行化。对象的寿命通

* 常是随着生成该对象的程序的终止而终止,在有些情况下,需要将对象的状态保存下来,然后

* 在必要的时候将对象恢复,值得注意的是,如果变量是另一个对象的引用,则引用的对象也要

* 串行化,串行化是一个递归的过程,可能会涉及到一个复杂树结构的串行化,比如包括原有对

* 象,对象的对象等。

*   在java.io包中,接口Serializable是实现对象串行化的工具,只有实现了Serializable

* 的对象才可以被串行化。Serializable接口中没有任何的方法,当一个类声明实现Seriali-

* zable接口时,只是表明该类遵循串行化协议,而不需要实现任何特殊的方法。

*   在进行对象串行化时,需要注意将串行化的对象和输入、输出流联系起来,首先通过对

* 象输出流将对象状态保存下来,然后通过对象输入流将对象状态恢复。

*/

class Book implements Serializable {

String isbn;

String name;

int page;

String type;

public Book(String isbn, String name, int page, String type) {

this.isbn = isbn;

this.name = name;

this.page = page;

this.type = type;

}

}

public class SerializableObject implements Serializable {

public static void main(String[] args) throws IOException,

ClassNotFoundException {

Book bookObj = new Book("7-02-016450-1", "Java", 218, "programming");

FileOutputStream fileOStream = new FileOutputStream("temp.ser");

ObjectOutputStream objOutStream = new ObjectOutputStream(fileOStream);

try {

objOutStream.writeObject(bookObj);

objOutStream.close();

} catch (IOException e) {

e.printStackTrace();

}

bookObj = null;

FileInputStream fileInStream = new FileInputStream("temp.ser");

ObjectInputStream objInStream = new ObjectInputStream(fileInStream);

try {

bookObj = (Book) objInStream.readObject();

objInStream.close();

} catch (IOException e) {

e.printStackTrace();

}

System.out.println("------------------------------------------------");

System.out.println("There are information about book:");

System.out.println("ISBN Number: " + bookObj.isbn);

System.out.println("Book Name: " + bookObj.name);

System.out.println("Book Page: " + bookObj.page);

System.out.println("Book Type: " + bookObj.type);

}

}

java 串行化 序列化_对象串行化 对象序列化相关推荐

  1. mac 命令行打开火狐_从命令行打开多个Firefox选项卡

    mac 命令行打开火狐 Now that I work on Firefox Developer Tools, I'm really starting to learn some of the tri ...

  2. java 反射动态修改数据类型_[Java-基础]反射_Class对象_动态操作

    动态性 动态语言 在程序运行时,可以改变程序结构或变量类型,典型的语言: Python,ruby,javascript 如: function test(){ var s = "var a= ...

  3. java抖音字符视频_抖音流行的字符视频如何实现

    前几天,有个朋友给我分享了一个抖音短视频链接,是以代古拉k跳舞视频为原型的字符视频,朋友问我:"这个你知道怎么做吗?". 我们都知道视频是由一帧一帧的静态图片组合而成的,所以当我们 ...

  4. java timer 序列化_编程达人 应用层timer_如何序列化timer

    本文摘自    https://www.cnblogs.com/embedded-linux/p/9093990.html 应用层使用timer可以启动多个timer(每个timer管理一个目标时间) ...

  5. java山地车和索罗门_自由骑行山地车(Freeride(FR)

    此种车辆和Enduro(AM)有相似之处.但不强调轻量的需求,而是更加看重减震的效果. 算是 DH 和 XC 的 综合 版 .FR自行车趋向于更长更好的减震,8寸或者更长的后减震都是很正常的配置.它的 ...

  6. 命令行处理器命令_使用命令行处理器

    命令行处理器命令 在你开始前 DB2 JSON可用于Linux,UNIX和Windows 10.5的DB2以及用于z / OS V3.1的IBM DB2 Accessories Suite来与DB2 ...

  7. spring序列化_使用@JsonIdentityInfo的Spring自定义序列化器

    spring序列化 介绍 Spring中从JSON到JSON的序列化/反序列化已广泛用于基于Spring的现代应用程序中. 它基于杰克逊. Jackson可以轻松地将任何POJO序列化为JSON,反之 ...

  8. php中调行高代码_单元格行高怎么设置

    单元格行高怎么设置? 如图一张表,全选,全选的快捷键是Ctrl+A.全选之后第一种方法是直接用鼠标放到最前面的竖栏上,放在数据与数据之间交叉的框上,会出现一个+字的符号. 这个时候点击鼠标左键拉动,就 ...

  9. 使用mysql命令行的工具_[MySQL]命令行工具和基本操作

    一 MySQL命令行工具  (查看帮助 ---help,或 -?) 1)MySQL MySQL是一个简单的SQL外壳(有GNUreadline功能).它支持交互式和非交互式使用.当交互使用时,查询结果 ...

  10. 二叉树线索化示意图_二叉树的线索化

    二叉树是一种非线性结构,遍历二叉树几乎都是通过递归或者用栈辅助实现非递归的遍历.二叉树作为存储结构时,一个节点只能获取节点的左孩子和右孩子,不能直接得到节点的任一遍历序列的前驱或者后继.为了保存这种在 ...

最新文章

  1. Linux下的删除命令
  2. 中石油训练赛 - One-Way Conveyors(边双缩点+树上差分)
  3. 工作177:表单重置项目处理
  4. Android Service LifeCycle
  5. mysql安装后变10g_Oracle 10G安装中一些常见问题解决
  6. 安卓恶意软件Skygofree爆发,连你的照片都能监控到
  7. React学习笔记—属性转移
  8. Per-class allocator 2
  9. SpringBoot 实现接口参数加密解密功能
  10. Vue中使用Video标签播放 <解析后的短视频>去水印视频无响应
  11. tspline工具_Rhino 6 如何使用 T-spline?
  12. latex数学公式转换器
  13. uCos中的信号量机制
  14. c语言无符号数最大值和最小值,c语言 int最大值是多少?
  15. easyui-filebox清空方法扩展自TextBox
  16. 论坛报名 | 语音与自然语言处理的最新突破和前沿趋势。道翰天琼认知智能平台为您揭秘新一代人工智能-1。
  17. SAP SD客户寄售案例教程1
  18. 关于启动 vue 项目出现 98% after emitting CopyPlugin 问题的出现
  19. 树莓派获取LAN ip地址并发送到微信
  20. Git中pull操作

热门文章

  1. centos7 mysql安装_CentOS7安装MySQL(详解)
  2. 【雷达通信】基于Matlab GUI中重频PD雷达仿真系统【含Matlab源码 1055期】
  3. 【模拟信号】基于matlab标准调幅信号产生+解调【含Matlab源码 984期】
  4. 【房价预测】基于matlab遗传算法优化BP神经网络房价预测【含Matlab源码 592期】
  5. 【语音分离】基于matlab FastICA语音信号采集+混合+分离【含Matlab源码 008期】
  6. python yield理解_python教程:迭代器,生成器与for循环机制
  7. 个性化推荐系统_推荐系统,个性化预测和优点
  8. 小程序会话服务器,完美解决小程序session问题
  9. oc传参数给js_一道面试题引发关于 js 隐式转换的思考
  10. nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践