Java 직렬화 및 역직렬화는 객체를 바이트 시퀀스로 저장하는 데 사용되는 지속성 메커니즘입니다. 직렬화는 java.io.Serialized 인터페이스와 ObjectOutputStream을 사용하여 파일이나 네트워크에 객체를 씁니다. 역직렬화는 ObjectInputStream을 사용하여 파일이나 네트워크에서 바이트 시퀀스를 읽고 원본 개체를 재구성합니다. 직렬화 및 역직렬화는 Java에서 나중에 다시 로드하기 위해 사용자 개체를 유지하는 것과 같은 개체를 유지하는 데 사용됩니다.
Java 직렬화 및 역직렬화에 대한 심층 가이드
소개
직렬화는 나중에 역직렬화 및 역직렬화할 수 있도록 객체를 파일이나 네트워크에 바이트 단위로 저장하는 것입니다. 원본 객체를 다시 빌드합니다. . 역직렬화는 그 반대입니다. 바이트 형식의 데이터를 원시 객체로 변환합니다.
Serialization
Java에서는 java.io.Serialized
인터페이스를 사용하여 객체를 직렬화할 수 있습니다. 객체를 파일로 직렬화하려면 ObjectOutputStream
을 사용할 수 있습니다. java.io.Serializable
接口对对象进行序列化。要将对象序列化到文件中,可以使用 ObjectOutputStream
:
// 创建一个对象要序列化的 FileOutputStream FileOutputStream fileOut = new FileOutputStream("object.ser"); // 使用 ObjectOutputStream 将对象写入文件中 ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(myObject); // 关闭 ObjectOutputStream out.close();
反序列化
要从文件中反序列化对象,可以使用 ObjectInputStream
:
// 创建一个 FileInputStream 以读取序列化的文件 FileInputStream fileIn = new FileInputStream("object.ser"); // 使用 ObjectInputStream 从文件中读取对象 ObjectInputStream in = new ObjectInputStream(fileIn); MyObject myDeserializedObject = (MyObject) in.readObject(); // 关闭 ObjectInputStream in.close();
实战案例:持久化用户对象
假设我们有一个 User
对象,我们需要将其存储在文件中以进行持久化处理。我们可以这样做:
// 创建一个 User 对象 User user = new User("John", "Doe"); // 将 User 对象序列化到文件中 FileOutputStream fileOut = new FileOutputStream("user.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(user); out.close(); // 从文件中反序列化 User 对象 FileInputStream fileIn = new FileInputStream("user.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); User deserializedUser = (User) in.readObject(); in.close(); // 确认反序列化的 User 对象 System.out.println(deserializedUser.getName() + " " + deserializedUser.getLastName()); // 打印:John Doe
结论
Java 序列化是用于对象持久化的强大机制。通过 java.io.Serializable
接口和 ObjectOutputStream
和 ObjectInputStream
rrreee
ObjectInputStream
을 사용할 수 있습니다. 🎜rrreee 🎜🎜실용 사례: 지속형 사용자 개체🎜🎜🎜 User
개체가 있고 지속성을 위해 이를 파일에 저장해야 한다고 가정해 보겠습니다. 우리는 이것을 할 수 있습니다: 🎜rrreee🎜🎜결론🎜🎜🎜Java 직렬화는 객체 지속성을 위한 강력한 메커니즘입니다. java.io.Serialized
인터페이스와 ObjectOutputStream
및 ObjectInputStream
클래스를 사용하면 객체를 쉽게 직렬화 및 역직렬화할 수 있습니다. 🎜위 내용은 Java 직렬화 및 역직렬화를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!