java io系列06之 序列化总结(Serializable 和 Externalizable)【荐】.doc

java io系列06之 序列化总结(Serializable 和 Externalizable)【荐】.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java io系列06之 序列化总结(Serializable 和 Externalizable)【荐】.doc

本章,我们对序列化进行深入的学习和探讨。学习内容,包括序列化的作用、用途、用法,以及对实现序列化的2种方式Serializable和Externalizable的深入研究。 序列化,就是为了保存对象的状态;而与之对应的反序列化,则可以把保存的对象状态再读出来。 简言之:序列化/反序列化,是Java提供一种专门用于的保存/恢复对象状态的机制。 一般在以下几种情况下,我们可能会用到序列化: a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对象的时候。 下面,我们先通过一则简单示例来查看序列化的用法。 源码如下(SerialTest1.java):? 1 /** 2 * 序列化的演示测试程序 3 * 4 * @author skywang 5 */ 6 7 import java.io.FileInputStream; 8 import java.io.FileOutputStream; 9 import java.io.ObjectInputStream; 10 import java.io.ObjectOutputStream; 11 import java.io.Serializable; 12 13 public class SerialTest1 { 14 private static final String TMP_FILE = .serialtest1.txt; 15 16 public static void main(String[] args) { 17 // 将“对象”通过序列化保存 18 testWrite(); 19 // 将序列化的“对象”读出来 20 testRead(); 21 } 22 23 24 /** 25 * 将Box对象通过序列化,保存到文件中 26 */ 27 private static void testWrite() { 28 try { 29 // 获取文件TMP_FILE对应的对象输出流。 30 // ObjectOutputStream中,只能写入“基本数据”或“支持序列化的对象” 31 ObjectOutputStream out = new ObjectOutputStream( 32 new FileOutputStream(TMP_FILE)); 33 // 创建Box对象,Box实现了Serializable序列化接口 34 Box box = new Box(desk, 80, 48); 35 // 将box对象写入到对象输出流out中,即相当于将对象保存到文件TMP_FILE中 36 out.writeObject(box); 37 // 打印“Box对象” 38 System.out.println(testWrite box: + box); 39 40 out.close(); 41 } catch (Exception ex) { 42 ex.printStackTrace(); 43 } 44 } 45 46 /** 47 * 从文件中读取出“序列化的Box对象” 48 */ 49 private static void testRead() { 50 try { 51 // 获取文件TMP_FILE对应的对象输入流。 52 ObjectInputStream in = new ObjectInputStream( 53 new FileInputStream(TMP_FILE)); 54 // 从对象输入流中,读取先前保存的box对象。 55 Box box = (Box) in.readObject(); 56 // 打印“Box对象” 57 Sy

文档评论(0)

ypwx + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档