手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

java中的序列化和反序列化

时间:2024-11-07 18:05:08

1、序列化和反序列化什么是序列化?将数据结构转换为字节的过程什么是反序列化?将字节转换为数据结构的过程如果想使用序列化和反序列化就要通过OOS 和 OIS序列化和反序列化必须要使用一个接口java.io.Serializable;实现该接口之后,还需要给该需要序列化的类提供一个类的版本号,这个类的版本号分厂重要,他影响着反序列化是否成功。

java中的序列化和反序列化

2、反序列化的时候,他会先查看版本号和序列化的时候是否一致,如果不一致直接抛出异常,如果一致那么他会启动兼容模式,序列化的时候 没有的属性,在反序列的时候会使用默认值来代替。

java中的序列化和反序列化

3、流是不是输出还是输入,相对的参照物是内存如果将一个文本文件的内容输入到控制台显示,首先需要将该文件的内容读取到内容,然后输出到控制台(输入流)

java中的序列化和反序列化

4、public class Person implements Serializable{/** * 序列化的版本号 * 该版本号很重要 他影响着反序列化是否能够成功 */private static final long serialVersionUID = 1L;private String name;private Integer age;private Double salary;private String address;public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Double getSalary() {return salary;}public void setSalary(Double salary) {this.salary = salary;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + ", salary=" + salary +",address="+address+"]";}}

java中的序列化和反序列化

5、import java.io.FileOutputStream;import java.io.ObjectOutputStream;/*** 序列化* 将数据结构---->字节* * ObjectOutputStream 高级流* */public class OOSDemo {public static void main(String[] args) throws Exception{Person p=new Person();p.setName("张三丰");p.setAge(22);/** * Double Integer 是兄弟关系 * 他们只能和自己相对应的基本类型做自动拆箱操作 * 2个包装类型和基本类型不一样,不能够自动转换。 */p.setSalary(6000.0);FileOutputStream fos=new FileOutputStream("Person.obj");ObjectOutputStream oos=new ObjectOutputStream(fos);oos.writeObject(p);oos.close();}}

java中的序列化和反序列化

6、import java.io.FileInputStream;import java.io.ObjectInputStream;/*** 反序列化* 将字节--->数据结构*/public class OISDemo {public static void main(String[] args) throws Exception{FileInputStream fis=new FileInputStream("Person.obj");ObjectInputStream ois=new ObjectInputStream(fis);Person p=(Person)ois.readObject();System.out.println(p);ois.close();}}

java中的序列化和反序列化
© 手抄报圈