직렬화: 힙 메모리의 Java 개체 데이터를 말하며 어떤 방식으로든 디스크 파일에 저장되거나 다른 네트워크 노드로 전달됩니다(네트워크 전송). 이 프로세스를 직렬화라고 하며 일반적으로 데이터 구조나 객체를 바이너리로 변환하는 프로세스를 나타냅니다. ㅋㅋㅋ (추천 학습: java 강좌 )
저장 또는 네트워크 전송을 위해 객체를 바이너리로 변환합니다.직렬화의 역할
① 메모리에 있는 객체를 파일이나 데이터베이스에 저장하고 싶을 때 ② 소켓을 사용하여 네트워크를 통해 객체를 전송하고 싶을 때; RMI를 통해 객체의 경우 일부 애플리케이션 시나리오에서는 객체를 바이너리로 변환하여 저장된 객체를 성공적으로 읽을 수 있도록 합니다.Java 직렬화 구현
객체 직렬화를 달성하려면 가장 직접적인 작업은 직렬화 가능 인터페이스를 구현하는 것입니다.IO 스트림의 객체 스트림을 사용하면 직렬화 작업을 구현하고 객체를 파일에 저장한 다음 읽을 수 있습니다. 그것은 나온다.
먼저 객체를 생성하고 직렬화 가능 인터페이스를 구현합니다.import java.io.Serializable; public class User implements Serializable{ private static final long serialVersionUID = 1L; private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }
객체 스트림을 사용하여 객체를 저장하고 읽기 위한 도구 클래스를 작성합니다.
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class SerializeUtil { // 保存对象,序列化 public static void saveObject(Object object) throws Exception { ObjectOutputStream out = null; FileOutputStream fout = null; try { fout = new FileOutputStream("D:/1.txt"); out = new ObjectOutputStream(fout); out.writeObject(object); } finally { fout.close(); out.close(); } } // 读取对象,反序列化 public static Object readObject() throws Exception { ObjectInputStream in = null; FileInputStream fin = null; try { fin = new FileInputStream("D:/1.txt"); in = new ObjectInputStream(fin); Object object = in.readObject(); return object; } finally { fin.close(); in.close(); } } }
테스트:
public class Main { public static void main(String[] args) { User user = new User(); user.setName("旭旭宝宝"); user.setAge(33); // 保存 try { SerializeUtil.saveObject(user); } catch (Exception e) { System.out.println("保存时异常:" + e.getMessage()); } // 读取 User userObject; try { userObject = (User) SerializeUtil.readObject(); System.out.println(userObject); } catch (Exception e) { System.out.println("读取时异常:" + e.getMessage()); } } }
테스트 결과:
위 내용은 Java의 직렬화 란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!