Java 직렬화 및 역직렬화에는 다음 단계가 포함됩니다. 직렬화 가능 인터페이스를 스트림에 구현하는 클래스 작성(직렬화). 스트림에서 객체를 읽습니다(역직렬화).
Serialization
Serialize
인터페이스를 구현하는 클래스를 작성합니다. Serializable
接口的类。ObjectOutputStream
对象,并将其与一个文件或字节流关联。ObjectOutputStream.writeObject()
方法将对象写入流中。示例代码:
import java.io.FileOutputStream; import java.io.ObjectOutputStream; public class Employee implements Serializable { private String name; private int age; // 省略getter和setter方法 public static void main(String[] args) { Employee employee = new Employee("John", 30); try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("employee.txt"))) { out.writeObject(employee); } catch (Exception e) { e.printStackTrace(); } } }
反序列化
ObjectInputStream
对象,并将其与一个文件或字节流关联。ObjectInputStream.readObject()
方法读取对象。示例代码:
import java.io.FileInputStream; import java.io.ObjectInputStream; public class DeserializeEmployee { public static void main(String[] args) { try (ObjectInputStream in = new ObjectInputStream(new FileInputStream("employee.txt"))) { Employee employee = (Employee) in.readObject(); System.out.println(employee.getName() + ", " + employee.getAge()); } catch (Exception e) { e.printStackTrace(); } } }
注意事项:
Serializable
ObjectOutputStream
개체를 생성하고 이를 파일 또는 바이트 스트림과 연결합니다. ObjectOutputStream.writeObject()
메서드를 사용하세요. ObjectInputStream
개체를 생성하고 이를 파일 또는 바이트 스트림과 연결합니다. 🎜🎜객체를 읽으려면 ObjectInputStream.readObject()
메서드를 사용하세요. 🎜🎜🎜샘플 코드: 🎜🎜rrreee🎜🎜참고: 🎜🎜직렬화 가능
인터페이스를 구현하는 클래스만 직렬화할 수 있습니다. 🎜🎜직렬화 및 역직렬화 순서는 일관되어야 합니다. 🎜🎜클래스 구조는 직렬화와 역직렬화 간에 변경될 수 없습니다. 🎜🎜객체 직렬화는 특히 대형 객체의 경우 느릴 수 있습니다. 🎜🎜위 내용은 Java 직렬화 및 역직렬화 프로세스는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!