java初学者实践教程23-序列化
来源:互联网 发布:跟风题材知乎 编辑:程序博客网 时间:2024/05/01 06:45
上节课我们讲了4种流,只有序列化的这个没有细讲。它是传对象的,如果想把一个对象保存在硬盘上,就只能使用这种方式。它的关键是将它的状态以一种串行格式表示出来,以便以后读该对象时能够把它读出来。对象的串行化对于大多数java应用是非常重要的:
u Java的远程方法调用(RMI),通过socket通信。这个东西我们会在后面的教程讲到。
u 对象永久化,就是把对象存硬盘上,或外存设备上。以便以后使用。
它的基础类是ObjectInputStream和ObjectOutputStream,这两个流称为对象流。
实践:
//这是一个保存对象的例子 import java.io.*; import java.util.Date; public class SerializeDate { SerializeDate() { Date d = new Date (); try { FileOutputStream f = new FileOutputStream ("date.ser"); //输出到date.ser这个文件中 ObjectOutputStream s = new ObjectOutputStream (f); s.writeObject (d); //写对象,将对象d写成是date.ser文件 s.close (); //关闭流 } catch (IOException e) { e.printStackTrace (); } } public static void main (String args[]) { new SerializeDate(); }}
图23-1
在DOS窗口中没有看到结果,但是在这个文件夹内发现了一个date.ser的文件。它就是对象d写入磁盘的状态。如图23-2
图23-2
那么保存了之后怎么在把这个date.ser文件读出来呢?
实践:
import java.io.*; import java.util.Date; public class UnSerializeDate { UnSerializeDate () { Date d = null; try { //使用FileInputStream类 FileInputStream f = new FileInputStream ("date.ser"); ObjectInputStream s = new ObjectInputStream (f); d = (Date) s.readObject ();//读对象 s.close (); } catch (Exception e) { e.printStackTrace (); } System.out.println( "从date.ser文件,读取Date对象 "); System.out.println("日期是: "+d); } public static void main (String args[]) { new UnSerializeDate(); }}
如图23-3所示读出时间
图23-3
上述源码打包下载
对于一个可以被序列化的类,它会实现一个Serializable的接口。那是个空接口,什么方法也没有只是一个标志而已。这在J2EE,(现在叫java EE)中,使用EJB时是非常重要的。如果大家以后能继续学习学到EJB的时候,再具体了解。
- java初学者实践教程23-序列化
- java初学者实践教程-反射
- java初学者实践教程9-数组
- java初学者实践教程24-反射
- java初学者实践教程25-多线程
- java初学者实践教程27-applet
- java初学者实践教程-网络程序
- java初学者实践教程1-配置环境变量
- java初学者实践教程2-jdk的使用
- java初学者实践教程3 - 基本语法1
- java初学者实践教程4- 基本语法2
- java初学者实践教程6-程序流程控制
- java初学者实践教程7-跳转语句
- java初学者实践教程10-集合类
- java初学者实践教程11-泛型声明
- java初学者实践教程12-面向对象
- java初学者实践教程13-面向对象之多态
- java初学者实践教程14-垃圾收集器
- 常用的40个网站制作技巧
- java初学者实践教程21-自定义异常类
- java初学者实践教程22-输入/输出
- 网页窗口自动最大化
- 广西的荔枝内蒙的奶酪
- java初学者实践教程23-序列化
- 你真的懂我吗?(谈谈C#接口)之一
- 内蒙的牛肉干真的没有羊的味道
- 哈哈哈,今天去三亚旅游
- XHTML简介
- java初学者实践教程24-反射
- 乱乱的这几天
- 电脑维修指导手册(联想)
- java初学者实践教程25-多线程