English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Java String getBytes() 메서드는 문자열을 바이트 시퀀스로 인코딩하고 이를 바이트 배열에 저장합니다.
String getBytes() 메서드의 문법은 다음과 같습니다:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
getBytes() 메서드는 바이트 배열을 반환합니다.
매개변수를 전달하지 않으면, getBytes()는 플랫폼의 기본 문자 집합을 사용하여 문자열을 인코딩합니다.
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //문자열을 바이트 배열로 변환 //플랫폼의 기본 문자 집합 사용 byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); } }
출력 결과
[74, 97, 118, 97]
주의:위의 예제에서는 Arrays 클래스를 사용하여 바이트 배열을 읽을 수 있는 형태로 출력하였습니다. 이는 getBytes()와 관계없습니다.
CharSet Java에서 사용할 수 있는 다른 메서드는 다음과 같습니다:
UTF-8 - 8비트 UCS 변환 형식
UTF-16 - 16비트 UCS 변환 형식
UTF-16BE - 16비트 UCS 변환 형식, 비트 order byte sequence
UTF-16LE - 16비트 UCS 변환 형식, 리트ail order byte sequence
US-ASCII - 7비트 ASCII
ISO-8859-1 - ISO 라틴 알파벳1호
import java.util.Arrays; import java.nio.charset.Charset; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //UTF 사용-8인코딩 byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); //UTF 사용-16인코딩 byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); } }
출력 결과
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
주의:위의 프로그램에서는 java.nio.charset.Charset를 사용하여 Charset을 사용하도록 하였고, Arrays 클래스를 사용하여 바이트 배열을 읽을 수 있는 형태로 출력하였습니다.
또한 문자열을 사용하여 getBytes()의 인코딩 유형을 지정할 수 있습니다. 이렇게 사용할 때는 코드를try ... catch 블록에서。
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; try { byteArray = str.getBytes("UTF-8"); System.out.println(Arrays.toString(byteArray)); byteArray = str.getBytes("UTF-16"); System.out.println(Arrays.toString(byteArray)); //잘못된编码 //예외 투기 byteArray = str.getBytes("UTF-34"); System.out.println(Arrays.toString(byteArray)); } catch (Exception e) { System.out.println(e + "encoding is wrong"); } } }
출력 결과
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97] java.io.UnsupportedEncodingException: UTF-34 encoding is wrong
주의:저희는 java.util.Array를 import했습니다. 바이트 배열을 읽을 수 있는 형태로 출력합니다. getBytes()와 무관합니다.