String.format에 대해선 익히 알고 있어 여러모로 사용을 했었는데...

최근에 패킷을 바이트 단위로 까봐야 할 일이 있었다. System.out.printf("[%02x]",byte[i])로 해서 보면 되긴 하는데...

그건 콘솔창으로 잠깐 보였다가 사라지기 때문에 보기가 힘들어서 로그로 남겨야할일이 있었다.

근데 어떻게 남기지???...하는 고민이 생겼다.


System.out.printf("[%02x]",byte[i])문을 어떻게 String형식으로 받을수 있지 않을까 하는 한심한 생각까지 하면서...ㅡㅡ;

String.format포맷으로는 날짜 형식이라던가 자릿수 맞추는 일에만 써봤지, 패킷 까보는데는 써본적이 없어서 ....

전혀 생각도 안했었다. ㅡㅜ


정말 머리가 나쁘면 손발이 고생하는것 같다.

로그로 남길려면 아래와 같이 소스를 추가 하면 로그로 남길수 있었다.


byte[] buff = {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10};                                                                


int size = buff.length;

StringBuffer strBuff = new StringBuffer();

for (int i = 0; i < size; i++) {

    String str = String.format("[%02X]", buff[i]);

    strBuff.append(str); 

}

// logger.log(strBuff.toString()); // 로그로 남길경우

System.out.println(strBuff.toString()); // 콘솔창으로 보기만 할경우

                                                                                               


[실행결과]

[00][01][02][03][04][05][06][07][08][09][10]                                                                                                   


String.format는 데이터 형식과 날짜형식을 포맷팅 할 수 있습니다.

자세한 내용은 Java API또는 인터넷을 참조 하시면 많이 나옵니다. ^^;


감사합니다.