• Java序列化


    Java序列化

    什么是Serializable接口?

    一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才能被序列化。

    什么是序列化?

    序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。

    为什么要序列化对象?

    把对象转换为字节序列的过程称为对象的序列化

    把字节序列恢复为对象的过程称为对象的反序列化

    目的

    1、以某种存储形式使自定义对象持久化

    2、将对象从一个地方传递到另一个地方。

    3、使程序更具维护性。

    什么情况下需要序列化?

    当我们需要把对象的状态信息通过网络进行传输,或者需要将对象的状态信息持久化,以便将来使用时都需要把对象进行序列化

    Java 是如何实现序列化的?

    • java 实现序列化很简单,只需要实现Serializable 接口即可。
    public class User implements Serializable{
     //年龄
     private int age;
     //名字
     private String name ;
    
     public int getAge() {
     return age;
        }
     public void setAge(int age) {
     this.age = age;
        }
    
     public String getName() {
     return name;
        }
    
     public void setName(String name) {
     this.name = name;
        }
    }
    
    • 把User对象设置值后写入文件
    FileOutputStream fos = new FileOutputStream("D:\\temp.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    
    User user = new User();
    user.setAge(18);
    user.setName("sandy");
    oos.writeObject(user);
    
    oos.flush();
    oos.close();
    
    • 再把从文件读取出来的转换为对象
    FileInputStream fis = new FileInputStream("D:\\temp.txt");
    
    ObjectInputStream oin = new ObjectInputStream(fis);
    
    User user = (User) oin.readObject();
    
    System.out.println("name="+user.getName());
    

    输出结果为:name=sandy

    以上把User对象进行二进制的数据存储后,并从文件中读取数据出来转成User对象就是一个序列化和反序列化的过程。

  • 相关阅读:
    食物
    连在一起的幻想乡
    【XSY3209】RGB Sequence
    【Luogu4389】付公主的背包
    【BZOJ4555】【TJOI2016】【HEOI2016】求和
    【BZOJ3456】城市规划
    【BZOJ2693】jzptab & 【BZOJ2154】Crash的数字表格
    【Learning】左偏树
    小Z的袜子
    【BZOJ3625】【CF438E】小朋友和二叉树
  • 原文地址:https://www.cnblogs.com/xiaxiaopi/p/14447362.html
Copyright © 2020-2023  润新知