자바 대상 의 직렬 화 방식 복제 상세 설명

자바 직렬 화 기술 은 대상 의 상 태 를 Byte 흐름 에 기록 할 수 있 고 다른 곳 에서 이 Byte 흐름 의 데 이 터 를 읽 어서 같은 대상 을 재 구성 할 수 있 습 니 다.
요약:
바이트 스 트림 방식 으로 자바 대상 복사
코드:
스 트림 복제 함수

public static Object deepClone(Object obj){ 
 if(obj == null){ 
  return null; 
 } 
 try { 
  ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); 
  Object cloneObj = null; 
  ObjectOutputStream out = new ObjectOutputStream(byteOut); 
  out.writeObject(obj); 
  ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); 
  ObjectInputStream in = new ObjectInputStream(byteIn); 
  cloneObj = in.readObject(); 
  return cloneObj; 
 } catch (Exception e) { 
  throw new RuntimeException(e); 
 } 
} 
ObjectClone.java

package test; 
 
import java.io.ByteArrayInputStream; 
import java.io.ByteArrayOutputStream; 
import java.io.ObjectInputStream; 
import java.io.ObjectOutputStream; 
import java.io.Serializable; 
 
public class ObjectClone { 
 /** 
  *      
  */ 
 private static class Person implements Serializable { 
  private String name; 
  private int age; 
  Person(String name, int age){ 
   this.name = name; 
   this.age = age; 
  } 
  @Override 
  public String toString() { 
   return String.format("name: %s
age: %s", name, age); } } /** * */ public static void main(String[] args) { Person person = new Person("Henry", 22); Person newPerson = (Person)ObjectClone.deepClone(person); System.out.println(newPerson); } /** * * * @param obj * @return */ public static Object deepClone(Object obj){ if(obj == null){ return null; } try { ByteArrayOutputStream byteOut = new ByteArrayOutputStream(); Object cloneObj = null; ObjectOutputStream out = new ObjectOutputStream(byteOut); out.writeObject(obj); ByteArrayInputStream byteIn = new ByteArrayInputStream(byteOut.toByteArray()); ObjectInputStream in = new ObjectInputStream(byteIn); cloneObj = in.readObject(); return cloneObj; } catch (Exception e) { throw new RuntimeException(e); } } }
테스트 결과:

총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 면 댓 글 을 남 겨 주 십시오.

좋은 웹페이지 즐겨찾기