Рядок 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 - шістнадцятирозрядний формат перетворення UCS
  • UTF-16BE - шістнадцятирозрядний формат перетворення UCS, порядок байтів великого класу
  • UTF-16LE - шістнадцять розрядних форматів перетворення UCS, порядок байтів мало-ендіанського типу
  • US-ASCII - семирозрядний ASCII
  • ISO-8859-1 - ISO латинський алфавіт No1

Приклад: 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 block.

Приклад: 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().

Цікаві статті...