* Arrays.copyOfRange()와 ByteArrayOutputStream.write(), ByteArrayOutputStream.toByteArray()를 사용하여,
심플하고 우아하게 바이트배열을 생성할 수 있다.
/**
* 객체의 모든 내용을 바이트배열로 만들어 리턴한다.
* @return
*/
public byte[] getBytes(){
byte[] ret = null;
ByteArrayOutputStream stream = new ByteArrayOutputStream(BYTES_BODY); //BYTES_BODY는 메세지의 전체 길이(bytes)이다.
try {
stream.write(Arrays.copyOfRange(gameId.getBytes(), 0, BYTES_GAME_ID)); //BYTE_'속성명'은 각 속성별 지정 길이(bytes)이다.
stream.write(Arrays.copyOfRange(isolStaDtm.getBytes(), 0, BYTES_ISOL_STA_DTM));
stream.write(Arrays.copyOfRange(isolEndDtm.getBytes(), 0, BYTES_ISOL_END_DTM));
ret = stream.toByteArray();
} catch (IOException e) {
e.printStackTrace();
}
return ret;
}
* 빈 바이트 패딩을 붙이고 싶을 때
byte[] paddingBytes = new byte[10]; stream.write(paddingBytes);
* 스페이스 패딩을 붙이고 싶을 때
stream.write(StringUtils.repeat(' ', 10).getBytes());