Java对象的序列化与反序列化案例

原创 ゝ一纸荒年。 2024-12-12 23:15 108阅读 0赞

在Java中,对象的序列化是指将对象的状态信息转化为字节的过程,而反序列化则是相反的过程,即从字节数组恢复到原始对象。

以下是一个简单的例子:

  1. import java.io.*;
  2. // 创建一个对象
  3. class SerializableObject {
  4. private String name;
  5. private int age;
  6. // 构造函数
  7. public SerializableObject(String name, int age) {
  8. this.name = name;
  9. this.age = age;
  10. }
  11. // 获取和设置属性的方法
  12. public String getName() {
  13. return name;
  14. }
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. public int getAge() {
  19. return age;
  20. }
  21. public void setAge(int age) {
  22. this.age = age;
  23. }
  24. }
  25. public class Main {
  26. public static void main(String[] args) {
  27. // 创建一个对象
  28. SerializableObject obj = new SerializableObject("John", 30);
  29. // 将对象序列化为字节流
  30. try (OutputStream outputStream = new FileOutputStream("serializable_object.bin")) {
  31. ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);
  32. objectOutputStream.writeObject(obj); // 序列化
  33. } catch (IOException e) {
  34. e.printStackTrace();
  35. }
  36. // 从字节数组反序列化回对象
  37. try (InputStream inputStream = new FileInputStream("serializable_object.bin")) {
  38. ObjectInputStream objectInputStream = new ObjectInputStream(inputStream);
  39. obj = (SerializableObject) objectInputStream.readObject(); // 反序列化
  40. } catch (IOException | ClassNotFoundException e) {
  41. e.printStackTrace();
  42. }
  43. System.out.println("Recovered SerializableObject: " + obj.getName() + ", " + obj.getAge());
  44. }
  45. }

这个例子中,我们首先创建了一个SerializableObject对象,并将其状态信息存储在内存中。然后我们将对象序列化为字节流,写入文件。接着从文件读取字节数组,并反序列化回原始对象。最后,展示恢复后的对象内容。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,108人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java对象序列序列错误案例

    Java对象序列化和反序列化是将对象状态转换为可以存储或传输的格式(序列化),以及将这种格式转换回对象状态(反序列化)的过程。在实际应用中,可能会遇到各种错误,以下是一些常见的

    相关 Java对象序列序列

    一、序列化和反序列化介绍 在Java中,对象的序列化与反序列化被广泛应用到RMI(远程方法调用)及网络传输中。 序列化:指将Java对象数据保存到磁盘文件中或者传递给其