【Java学习笔记】对象的流读写(串行化)-阿里云开发者社区

开发者社区> 老朱教授> 正文

【Java学习笔记】对象的流读写(串行化)

简介:
+关注继续查看

Serializable接口中没有任何的方法。当一个类声明要实现Serializable接口时,只是表明该类参加串行化协议,而不需要实现任何特殊的方法。

注意:Thread类不能被并行化

import java.io.Serializable; 
public class Goober implements Serializable { 
    private int width; 
    private String color; 
    private transient long work;//若你的类中有不能并行化的或者不想并行化的成员,则使用transient进行忽略 
    Goober() { 
        width = 99; 
        color = "puce"; 
    } 
    void setColor(String setting) { 
        color = setting; 
    } 
    String getColor() { 
        return(color); 
    } 
}

========写=======

import java.io.FileOutputStream; 
import java.io.ObjectOutputStream; 
import java.io.IOException; 
public class SerialDemo1 { 
    public static void main(String arg[]) { 
        Goober goober = new Goober(); 
        goober.setColor("magenta"); 
        try { 
            FileOutputStream fos = new FileOutputStream("sergoob"); 
            ObjectOutputStream oos = new ObjectOutputStream(fos); 
            oos.writeObject(goober); 
            oos.close(); 
        } catch(IOException e) { 
            System.out.println(e); 
        } 
    } 
}

========读=======

import java.io.FileInputStream; 
import java.io.ObjectInputStream; 
import java.io.IOException; 
public class SerialDemo2 { 
    public static void main(String arg[]) { 
        Goober goober = null; 
        try { 
            FileInputStream fis = new FileInputStream("sergoob"); 
            ObjectInputStream ois = new ObjectInputStream(fis); 
            goober = (Goober)ois.readObject(); 
            ois.close(); 
        } catch(IOException e) { 
            System.out.println(e); 
        } catch(ClassNotFoundException e) { 
            System.out.println(e); 
        } 
        String color = goober.getColor(); 
        System.out.println(color); 
    } 
}

注意:

1.Demo1和Demo2都要求有Goober这个类,也就是说,实质上,方法本身并没有因为串行化而保存在文件中。

2.真正的对象持久化建议使用关系型数据库或者XML文件,通用性较高,而串行化要求双方都是Java才可以。

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/17/2822321.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
《C Primer Plus》读书笔记——递归
递归的原理 一个函数调用其本身,此调用过程为递归(recursion)。 递归的使用 举个栗子: /*用来测试UpAndDown函数的驱动程序*/ #include void UpAndDown (int); int main(void) { UpAnd...
925 0
Java对文件的读、写随机访问,RandomAccessFile类的使用分析
  在网上看了一些关于java中的RandomAccessFile类的介绍,又经过查看Java API和自己编的测试程序,总算是对RandomAccessFile的使用有了一定的了解。自己做了以下比较详细的总结吧。
1021 0
SpringMVC、Hibernate系列之级联对象的json序列化
       最近为了加深学习Spring和Hibernate,就利用Spring4、Hibernate5搭建了SpringMVC与Hibernate整合的平台框架。搭建过程曾遇到了一系列的棘手问题,在这里将相应的解决方案给予记录和分享。 问题描述 利用Jackson序列化Hibernate一对多关联对象时,出现死循环。花费了1天半时间,必须记录下来。 问题分析 很显然是由于
1531 0
读书笔记(二)对象激活和上下文
任何程序都需要在某个平台提供的环境中执行.对于传统的炒作系统而言,这种运行时环境的主要形式就是一个进程.一个进程不仅为你的代码提供了象虚拟内存,线程和内核对象这样的资源,还为你和别人的代码间提供了一个隔离边界.
752 0
JavaScript面向对象的编程指南学习笔记
JavaScript面向对象的编程指南学习笔记 第一章 1,用自己的语言描述出,什么是对象、类、封装、聚合、继承、多态? 对象,拥有属性和方法的任何抽象概念。 类,可以实例化,有共同属性或方法(行为)的相似对象,的模板 封装,提供接口,隐藏接口的实现 聚合,将大功能(对象)拆分成小功能(小对象)去实现的逆过程。
8844 0
数据结构学习笔记——最大子列和问题
PTA 中国大学MOOC-陈越、何钦铭-数据结构 01-复杂度1 最大子列和问题(20 分) 给定K个整数组成的序列{ N​1​​ , N​2​​ , ..., N​k},“连续子列”被定义为{ N​i , N​i+1​​ , ..., N​j},其中 1≤i≤j≤K。
1023 0
+关注
3546
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载