Метод 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()
.