java——序列化与反序列化
来源:互联网 发布:不同后缀的英文域名 编辑:程序博客网 时间:2024/05/27 00:54
import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Serializable;public class ObjectStreamDemo {public static void main(String[] args) {/** * 对象流 * ObjectOutputStream和ObjectInputStream类用于存储和读取基本类型数据或 * 对象的过滤流,他可以把java中的对象写到数据源中,也能把对象从数据源中还原回来。 * 用ObjectOutputStream类读取基本数据类型或对象的机制叫做序列化;ObjectInputStream * 类读取数据类型或对象的机制叫做反序列化。ObjectOutputStream和ObjectInputStream不能序列化static和 * transient修饰的成员变量。 * 另外,能被序列化的对象所对应的类必须实现java.io.Serializable这个标志性接口。 */new ObjectStreamDemo().serializationTest("e:/pratice.html");new ObjectStreamDemo().deserializationTest("e:/pratice.html");/** * 显式地定义serialVersionUID有一下两种用途: * 1.在某些场合,希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有相同的serialVersionUID. * 2.在某些场合,不希望类的不同版本对序列化兼容,因此需要确保类的不同版本具有不同的serialVersionUID. */}private void serializationTest(String filepath){ObjectOutputStream oos = null;try {oos = new ObjectOutputStream(new FileOutputStream(filepath));oos.writeObject(new Student(1, "xiex", 18));oos.flush();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}finally {if(oos != null){try {oos.close();} catch (IOException e) {e.printStackTrace();}}}}private void deserializationTest(String filepath){try {ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filepath));Student stu = (Student) ois.readObject();System.out.println(stu);} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}}}class Student implements Serializable{private static final long serialVersionUID = 1L;private int id;private String name;private transient int age;@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";}public Student(int id, String name, int age) {super();this.id = id;this.name = name;this.age = age;}public Student() {}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
0 0
- java——序列化与反序列化
- Java技术 —— 序列化与反序列化
- Java——序列化与反序列化
- 20170824 Java——序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- Java序列化与反序列化
- Java序列化与反序列化
- java 序列化 与 反序列化
- java序列化与反序列化
- JAVA序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- java序列化与反序列化
- Java序列化与反序列化
- Java序列化与反序列化
- 同步,异步,阻塞,非阻塞
- hashmap实现原理浅析
- 概述
- 第十二周作业报告
- golang代码案例
- java——序列化与反序列化
- Redhat6.5(红帽6.5)用iso镜像配置yum本地源
- 从内存管 理、内存泄漏、内存回收探讨C++内存管理
- 电脑网线互连共享文件
- 【机房重构】--视图学习
- Dubbo之——安装 Dubbo 注册中心(Zookeeper-3.4.9)
- 论文图表录 出现几个 错误标签未定义的简单解决方法
- item43 抛出的异常适合于相应的抽象
- CommonUtil.getXXX(Context context),Context对象你传对了吗?