Методът Java String getBytes () кодира низа в последователност от байтове и го съхранява в масив от байтове.
Синтаксисът на метода String getBytes()
са:
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 латиница № 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 () С параметър String
Можете също така да посочите типа на кодиране за getBytes()
използване на низове. Когато използвате getBytes()
по този начин, трябва да увиете кода вътре try … catch block.
Пример: getBytes () С параметър String
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()
.