Java

Java byte array를 String으로 String을 byte array로 변환

Darane 2020. 5. 15. 21:59

프로그램 구현 중에 Data의 전달하는 부분을 byte array로 처리하다 보면 String으로 변환해야 하는 경우가 있습니다.

 

Java에서 byte array(배열)를 String(문자열)으로 String을 byte array로 변환하는 예제를 살펴보겠습니다. (byte array to String, String to byte array)

 

추가로 byte array를 16진법(Hexadecimal) String(문자열)로 변환하는 예제도 살펴보겠습니다.

 

1. byte array를 String으로 변환

byte array를 String으로 변환해주는 예제이다. 아래의 예제와 같이 String의 생성자의 인자로 byte array을 넣어주면 String으로 반환이 된다.

byte[] byteArray = {0x48, 0x65, (byte)0x6C, (byte)0x6C, (byte)0x6f, 
		0x20, 0x57, (byte)0x6f, 0x72, (byte)0x6c, 0x64};
		
String data = new String(byteArray); //변환
		
System.out.println(data);

결과

Hello World

 

2. String을 byte array로 변환

String을 byte array로 변환해주는 예제이다. String의 getBytes() API를 사용하면 아래와 같이 Stinrg의 문자열 값을 byte array로 변환하는 걸 볼 수 있다.

String data = "Hello World";
		
System.out.println(data.getBytes()); //byte array 출력
System.out.println(byteArrayToHexaString(data.getBytes())); //byte array를 16진수 문자열로 출력

결과

[B@3d075dc0
48 65 6C 6C 6F 20 57 6F 72 6C 64 

 

 

3. byte array를 16진수 문자열로 변환

byte array의 값을 사람이 편하게 읽을 수 있도록 16진수 문자열로 표시해주는 예제이다.

디버깅(debugging)을 위한 로그를 남길 때 byte array의 값을 알고 싶을 경우 사용하면 좋은 예제가 될 것이다.

public static String byteArrayToHexaString(byte[] bytes) {
    StringBuilder builder = new StringBuilder();
		
    for (byte data : bytes) {
        builder.append(String.format("%02X ", data));
    }
		
    return builder.toString();
}

 

반응형