java中的序列化和反序列化

2025-12-17 08:15:15

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; } @Override public 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中的序列化和反序列化

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢