자바 Serializable 객체를 Byte 배열로
object
java
serialization
자바의 Serializable과 관련된 검색 결과 대부분의 예제들은 파일로 문서 쓰기 혹은 문서로부터 읽기와 관련된 내용이었습니다.
AppMessage라는 serializable 클래스가 있다고 합시다.
이 클래스를 byte[]로서 소켓을 통해 별개의 기기로 전달하고 싶습니다. 기기에서는 전달 받은 byte를 재빌드 할 것이고요.
어떻게 해야 할까요?
-
2016년 07월 10일에 작성됨
조회수 967
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은 무시 }
}
-
2016년 07월 11일에 작성됨
출처: https://stackoverflow.com/questions/2836646 이 질문은 저작자표시-동일조건변경허락(https://creativecommons.org/licenses/by-sa/3.0/deed.ko) 라이센스로 이용할 수 있습니다. 장대엽 2018.3.20 10:51