English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 프로세스 제어

Java 배열

Java 방향대상(I)

Java 방향대상(II)

Java 방향대상(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 셋

Java Set 셋

Java 입력/출력(I/O)

Java Reader/Writer

Java 다른 주제

Java String getBytes() 사용 방법 및 예제

Java String(문자열) 메서드

Java String getBytes() 메서드는 문자열을 바이트 시퀀스로 인코딩하고 이를 바이트 배열에 저장합니다.

String getBytes() 메서드의 문법은 다음과 같습니다:

string.getBytes()
string.getBytes(Charset charset)
string.getBytes(String charsetName)

getBytes() 메서드는 바이트 배열을 반환합니다.

1. getBytes() 매개변수 없음

매개변수를 전달하지 않으면, 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()와 관계없습니다.

2. Charset 매개변수를 가진 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호

예제: Charset 매개변수를 가진 getBytes()

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 클래스를 사용하여 바이트 배열을 읽을 수 있는 형태로 출력하였습니다.

3. 문자열 매개변수를 가진 getBytes()

또한 문자열을 사용하여 getBytes()의 인코딩 유형을 지정할 수 있습니다. 이렇게 사용할 때는 코드를try ... catch 블록에서

예제: 문자열 매개변수를 가진 getBytes()

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()와 무관합니다.

Java String(문자열) 메서드