Строка Java getBytes ()

Метод Java String getBytes () кодирует строку в последовательность байтов и сохраняет ее в массиве байтов.

Синтаксис getBytes()метода String :

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

Здесь строка - это объект Stringкласса.

getBytes()Метод возвращает массив байтов.

1. getBytes () без параметров

Если вы не передаете никаких параметров, getBytes()кодирует строку, используя кодировку платформы по умолчанию.

Пример: getBytes () без параметров

 import java.util.Arrays; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // convert the string to a byte array // using platform's default charset byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); ) )

Вывод

 (74, 97, 118, 97)

Примечание. Мы использовали Arraysкласс в приведенном выше примере для печати массива байтов в удобочитаемой форме. Это не причем getBytes().

2. getBytes () с параметром CharSet

CharSetВ java доступны разные варианты:

  • UTF-8 - восьмибитный формат преобразования UCS
  • UTF-16 - 16-битный формат преобразования UCS
  • UTF-16BE - 16-битный формат преобразования UCS, порядок байтов с прямым порядком байтов
  • UTF-16LE - 16-битный формат преобразования UCS, порядок байтов с прямым порядком байтов
  • US-ASCII - семибитный ASCII
  • ISO-8859-1 - Латинский алфавит ISO № 1

Пример: getBytes () с параметром CharSet

 import java.util.Arrays; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // using UTF-8 for encoding byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); // using UTF-16 for encoding 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()использования строк. При использовании 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)); // wrong encoding // throws an exception 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 неверна

Примечание. Мы импортировали java.util.Arrays, чтобы напечатать массив байтов в читаемой форме. Это не причем getBytes().

Интересные статьи...