자바 Serializable 객체를 Byte 배열로
조회수 2866회
자바의 Serializable과 관련된 검색 결과 대부분의 예제들은 파일로 문서 쓰기 혹은 문서로부터 읽기와 관련된 내용이었습니다.
AppMessage라는 serializable 클래스가 있다고 합시다.
이 클래스를 byte[]로서 소켓을 통해 별개의 기기로 전달하고 싶습니다. 기기에서는 전달 받은 byte를 재빌드 할 것이고요.
어떻게 해야 할까요?
1 답변
-
전달할 byte를 준비합니다:
ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutput out = null; try { out = new ObjectOutputStream(bos); out.writeObject(yourObject); byte[] yourBytes = bos.toByteArray(); ... } finally { try { if (out != null) { out.close(); } } catch (IOException ex) { // close에서 발생하는 exception은 무시 } try { bos.close(); } catch (IOException ex) { // close에서 발생하는 exception은 무시 } }
전달받은 byte로 객체 생성:
ByteArrayInputStream bis = new ByteArrayInputStream(yourBytes); ObjectInput in = null; try { in = new ObjectInputStream(bis); Object o = in.readObject(); ... } finally { try { bis.close(); } catch (IOException ex) { // close에서 발생하는 exception은 무시 } try { if (in != null) { in.close(); } } catch (IOException ex) { // close에서 발생하는 exception은 무시 } }
댓글 입력