상세 컨텐츠

본문 제목

[Java] 직렬화, 역직렬화 간단한 예제 소스코드

Development/Java

by J-Developer 2020. 11. 7. 20:42

본문

반응형

직렬화, 역직렬화의 간단한 예제 소스코드를 남겨놓으려고 한다.

 

 

 


[VO]

 

public class WebVO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 6640500874707651002L;
	
	private String name;
	private transient String pwd;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
	@Override
	public String toString() {
		return "WebVO [name=" + name + ", pwd=" + pwd + "]";
	}
	
}

 

 

[직렬화, 역직렬화 로직]

		WebVO vo = new WebVO();
		
		vo.setName("이름");
		vo.setPwd("1234");
		
		System.out.println( vo );
		
		 byte[] serializedVO;
		    try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
		        try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
		            oos.writeObject(vo);
		            // serializedMember -> 직렬화된 member 객체
		            serializedVO = baos.toByteArray();
		        }
		    }
		
		String seri = Base64.getEncoder().encodeToString(serializedVO);
		
		System.out.println( seri );
		
	    byte[] serializedMember = Base64.getDecoder().decode(seri);
	    try (ByteArrayInputStream bais = new ByteArrayInputStream(serializedMember)) {
	        try (ObjectInputStream ois = new ObjectInputStream(bais)) {
	            // 역직렬화된 Member 객체를 읽어온다.
	            Object objectMember = ois.readObject();
	            WebVO vo2 = (WebVO) objectMember;
	            System.out.println(vo2);
	        }
	    }
		
		HashSet<Object> set = new HashSet<Object>();

 

 

반응형

관련글 더보기

댓글 영역