java에서 전문을 보낼 때, 바이트배열(byte array)을 생성하는 우아한 방법

By | 5월 9, 2014

 

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

 

 

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments