>  기사  >  Java  >  Java 직렬화 및 역직렬화를 수행하는 방법은 무엇입니까?

Java 직렬화 및 역직렬화를 수행하는 방법은 무엇입니까?

王林
王林원래의
2024-04-15 10:33:02329검색

Java 직렬화 및 역직렬화는 객체를 바이트 시퀀스로 저장하는 데 사용되는 지속성 메커니즘입니다. 직렬화는 java.io.Serialized 인터페이스와 ObjectOutputStream을 사용하여 파일이나 네트워크에 객체를 씁니다. 역직렬화는 ObjectInputStream을 사용하여 파일이나 네트워크에서 바이트 시퀀스를 읽고 원본 개체를 재구성합니다. 직렬화 및 역직렬화는 Java에서 나중에 다시 로드하기 위해 사용자 개체를 유지하는 것과 같은 개체를 유지하는 데 사용됩니다.

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 接口和 ObjectOutputStreamObjectInputStreamrrreee

🎜Deserialization🎜🎜🎜파일에서 객체를 역직렬화하려면 ObjectInputStream을 사용할 수 있습니다. 🎜rrreee 🎜🎜실용 사례: 지속형 사용자 개체🎜🎜🎜 User 개체가 있고 지속성을 위해 이를 파일에 저장해야 한다고 가정해 보겠습니다. 우리는 이것을 할 수 있습니다: 🎜rrreee🎜🎜결론🎜🎜🎜Java 직렬화는 객체 지속성을 위한 강력한 메커니즘입니다. java.io.Serialized 인터페이스와 ObjectOutputStreamObjectInputStream 클래스를 사용하면 객체를 쉽게 직렬화 및 역직렬화할 수 있습니다. 🎜

위 내용은 Java 직렬화 및 역직렬화를 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.