Java中序列化
来源:互联网 发布:小学生编程软件下载 编辑:程序博客网 时间:2024/04/28 11:22
定义一个可序列化类:
/*当改变此类的结构时,那么序列化文件中存储的对象就不能使用,原因序列化的UID已经发生改变。我们可以设置类的UID,防止对成员修改导致崩溃。注意:1、序列化是采用一个serialVersionUID来关联类2、序列号在反序列化中验证对象的发送者和接受者是否对应。如果不对应,导致InvalidClassException3、可序列化类通过声明serialVersionUID字段(必须是static、final、long类型字段)显示声明自己的serialVersionUID4、如果未显示声明,则序列化运行时,系统基于该类的成员进行计算该类的serialVersionUID,因此建议显示声明,并且为private5、不能序列化静态成员,只能序列化堆内存中的成员。若果要对不是静态成员序列化,可加transient*/import java.io.*;class Person implements Serializable{private static final long serialVersionUID = 42L;String name;int age;Person(String name,int age){this.name = name;this.age = age;}public String toString(){return this.name + " ..." + this.age;}}
/*ObjectOutputStream:将Java的基本对象数据类型写入OutputStream,*/import java.io.*;import java.lang.Exception;class ObjectDemo{public static void main(String[] args)throws Exception{//writeObj();//出现 某个要序列化的对象不能实现java.io.NotSerializableException异常。查阅api,得知要实现Serializable接口//该接口没有方法,称为标记接口。readObj();}public static void readObj()throws Exception{ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.txt"));//对应接收Person p = (Person)ois.readObject();System.out.println(p);ois.close();}//将对象写入到文件中,保存起来public static void writeObj() throws IOException{ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.txt"));oos.writeObject(new Person("lisi",39));oos.close();}}
0 0
- java中序列化
- Java中序列化
- Java中序列化
- Java中对象序列化
- Java中什么是序列化?
- java中 什么是序列化?
- Java中为什么要序列化?什么时候用到序列化?
- Java中对象序列化技术
- Java 中对象的序列化技术
- java中对象的序列化
- Java中如何序列化一个对象
- java 中序列化的介绍
- java中序列化的serialVersionUID解释
- java中序列化的serialVersionUID解释
- java 序列化到mysql数据库中
- java中序列化的作用
- Java中序列化以及实现
- Java 中如何序列化一个对象
- 如何利用命令获取JNI签名
- 给一个奇数 N(1<N<2000),把从 1 到 N 2 的整数排成一个 N 行 N 列的方阵,使 该方阵的每一行、列和对角线上的 N 个数的和都相等
- 开启js之旅
- android学习总结之apinner控件
- 余额宝前世今生
- Java中序列化
- stm32f103初学之见
- IOS中结构体初始化的方法
- Boost之时间与日期处理
- Android学习笔记之SQLite数据库的使用及常用的增删改查方法、无sql语句的DRUD方法汇总
- 最近网上的一个热门话题引起的。。
- the difference between kernel stack and user stack
- 中国大学MOOC-翁恺-C语言程序习题第六周
- web server