자바 Serializable 객체를 Byte 배열로


자바의 Serializable과 관련된 검색 결과 대부분의 예제들은 파일로 문서 쓰기 혹은 문서로부터 읽기와 관련된 내용이었습니다.

AppMessage라는 serializable 클래스가 있다고 합시다.

이 클래스를 byte[]로서 소켓을 통해 별개의 기기로 전달하고 싶습니다. 기기에서는 전달 받은 byte를 재빌드 할 것이고요.

어떻게 해야 할까요?

  • 2016년 07월 10일에 작성됨

조회수 144


1 답변


좋아요
0
싫어요
채택취소하기

전달할 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은 무시  }
}
  • 2016년 07월 11일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close