在Java开发中,ObjectInputStream 是一个非常重要的类,用于从输入流中读取并重建之前通过 ObjectOutputStream 序列化的对象。本文将带你从零开始,详细讲解 Java ObjectInputStream 的基本用法、注意事项以及完整的代码示例,即使你是编程小白也能轻松掌握!

在 Java 中,序列化 是指将对象转换为字节流的过程,以便可以将其保存到文件、通过网络传输或存入数据库。反序列化 则是相反的过程——将字节流还原为原始的 Java 对象。
要使一个类的对象可以被序列化,该类必须实现 java.io.Serializable 接口。这个接口是一个标记接口,不需要实现任何方法。
要使用 ObjectInputStream 进行反序列化,通常需要以下步骤:
FileInputStream 指向保存了序列化对象的文件。FileInputStream 包装进 ObjectInputStream。readObject() 方法读取对象。首先,我们定义一个可序列化的类:
import java.io.Serializable;public class Person implements Serializable { private static final long serialVersionUID = 1L; private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Person{name='" + name + "', age=" + age + "}"; }}接下来,我们将这个对象序列化到文件中:
import java.io.FileOutputStream;import java.io.ObjectOutputStream;public class SerializeExample { public static void main(String[] args) { Person person = new Person("张三", 25); try (FileOutputStream fileOut = new FileOutputStream("person.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut)) { out.writeObject(person); System.out.println("对象已成功序列化到 person.ser 文件。"); } catch (Exception e) { e.printStackTrace(); } }}最后,使用 ObjectInputStream 将对象从文件中反序列化回来:
import java.io.FileInputStream;import java.io.ObjectInputStream;public class DeserializeExample { public static void main(String[] args) { Person person = null; try (FileInputStream fileIn = new FileInputStream("person.ser"); ObjectInputStream in = new ObjectInputStream(fileIn)) { person = (Person) in.readObject(); System.out.println("反序列化成功:" + person); } catch (Exception e) { e.printStackTrace(); } }}serialVersionUID,避免因类结构变化导致反序列化失败。transient 修饰的字段不会被序列化。readObject() 可能抛出 ClassNotFoundException 或 IOException,务必妥善处理。通过本教程,你已经掌握了 Java ObjectInputStream 的核心用法,了解了如何进行对象的反序列化操作。无论是保存用户配置、缓存数据,还是在网络中传输对象,Java序列化教程 中介绍的技术都非常实用。
记住,虽然 ObjectInputStream 使用简单,但在实际项目中需谨慎处理反序列化过程,确保程序的安全性和稳定性。希望这篇 ObjectInputStream使用方法 教程对你有所帮助!如果你正在寻找一个清晰的 Java反序列化示例,那么上面的代码就是最佳起点。
本文由主机测评网于2025-12-23发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20251211773.html