IO流,对象序列化
对象序列化 序列化机制允许将实现序列化的Java对象转换成字节序列,这些字节序列可以保存在磁盘上,或者用于网络传输,以备以后重新恢复成原来的对象。序列化机制使得对象可以脱离程序的运行而独立存在。 对象的序列化(Serialize)指将一个Java对象写入IO流中,与此对应的是,对象的反序列化(Deserialize)则是指从IO流中恢复该Java对象。如要让某个对象支持序列化机制,则必须要让它的类是可序列化的(Serializable)。为了让某个类是可序列化的,该类需要继承如下两个接口之一: 1. Serializable接口 2. Externliazble接口 我们先从Serializable接口开始说起。当类继承了Serializable接口时,该类是可序列化的,即创建出来的对象,可以写入磁盘或者用于网络传输(基本上用于网络传输的类都是序列化的,否则程序会出现异常。若有接触过Java web开发的同学,在web应用中的HttpSession 或ServletContext就是可序列化的类)。 我们如何操作输入/输出可序列化的对象呢,答案是使用ObjectInputStream与ObjectOutputStream的字节流进行操作,这两个流不仅仅是字节流还是处理流,因此需要一个任意节点流作为基础。 下面实现将可序列化对象写入文件,并从该文件读取该对象