* 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());