Java에서 바이트 어레이을 문자열로 변환
이 게시물은 Java에서 바이트 어레이을 문자열로 변환하는 방법에 대해 설명합니다.
우리는 문자열이 Java에 텍스트 데이터를 저장한다는 것을 알고 있습니다. byte[]
바이너리 데이터를 저장하므로 그들 사이의 변환을 피해야 합니다. 하지만 우리는 선택의 여지가 없는 상황에 처할 수 있습니다. 이 게시물은 문자 인코딩을 지정하거나 지정하지 않고 Java에서 바이트 어레이을 문자열로 변환하는 방법을 다룹니다.
1. 문자 인코딩 없이
우리는 변환할 수 있습니다 byte
문자 인코딩을 지정하지 않고 ASCII 문자 집합에 대해 어레이을 String으로 변환합니다. 아이디어는 통과하는 것입니다 byte[]
String 생성자에.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.io.IOException; import java.util.Arrays; // Java에서 바이트 어레이을 문자열로 변환 class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(); // System.out.println(Arrays.toString(bytes)); // 지정하지 않고 바이트 어레이에서 문자열 생성 // 문자 인코딩 String string = new String(bytes); System.out.println(string); } } |
결과:
Techie Delight
2. 문자 인코딩 사용
우리는 알고 있습니다 byte
최대 256개의 고유한 값을 가질 수 있는 8비트를 보유합니다. 이것은 처음 7비트만 사용되는 ASCII 문자 집합에 대해 잘 작동합니다. 256개 이상의 값을 가진 문자 집합의 경우 문자를 바이트 시퀀스로 인코딩하는 방법을 알려주는 인코딩을 명시적으로 지정해야 합니다.
다음 프로그램에서 우리는 StandardCharsets.UTF_8
인코딩을 지정합니다. Java 7 이전에는 다음을 사용할 수 있습니다. Charset.forName("UTF-8")
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.io.IOException; import java.nio.charset.StandardCharsets; // Java에서 바이트 어레이을 문자열로 변환 class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(StandardCharsets.UTF_8); // "UTF-8" 인코딩으로 바이트 어레이에서 문자열 생성 String string = new String(bytes, StandardCharsets.UTF_8); System.out.println(string); } } |
결과:
Techie Delight
바이트 어레이을 Java String으로 변환하는 것입니다.