Metoda Java String getBytes () koduje ciąg znaków w sekwencję bajtów i zapisuje go w tablicy bajtów.
Składnia getBytes()
metody String to:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Tutaj string jest obiektem String
klasy.
getBytes()
Sposób powraca tablicy bajtów.
1. getBytes () bez żadnych parametrów
Jeśli nie przekażesz żadnych parametrów, getBytes()
koduje ciąg przy użyciu domyślnego zestawu znaków platformy.
Przykład: getBytes () bez żadnych parametrów
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)); ) )
Wynik
(74, 97, 118, 97)
Uwaga:Arrays
w powyższym przykładzie wykorzystaliśmy klasę do wydrukowania tablicy bajtów w czytelnej formie. Nie ma z tym nic wspólnego getBytes(
).
2. getBytes () z parametrem CharSet
Oto różne CharSet
dostępne w java:
- UTF-8 - ośmiobitowy format transformacji UCS
- UTF-16 - szesnastobitowy format transformacji UCS
- UTF-16BE - szesnastobitowy format transformacji UCS, kolejność bajtów big-endian
- UTF-16LE - szesnastobitowy format transformacji UCS, kolejność bajtów little-endian
- US-ASCII - siedmiobitowy ASCII
- ISO-8859-1 - alfabet łaciński ISO nr 1
Przykład: getBytes () z parametrem 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)); ) )
Wynik
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Uwaga: w powyższym programie zaimportowaliśmy java.nio.charset.Charset
do użycia CharSet
. Zaimportowaliśmy Arrays
klasę, aby wydrukować tablicę bajtów w czytelnej formie.
3. getBytes () z parametrem ciągu
Możesz również określić typ kodowania getBytes()
za pomocą ciągów. Kiedy używasz getBytes()
w ten sposób, musisz zawinąć kod wewnątrz bloku try… catch.
Przykład: getBytes () z parametrem ciągu
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"); ) ) )
Wynik
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: kodowanie UTF-34 jest nieprawidłowe
Uwaga: zaimportowaliśmy java.util.Arrays, aby wydrukować tablicę bajtów w czytelnej formie. To nie ma z tym nic wspólnego getBytes()
.