Il metodo Java String getBytes () codifica la stringa in una sequenza di byte e la memorizza in un array di byte.
La sintassi del getBytes()
metodo String sono:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Qui, la stringa è un oggetto della String
classe.
Il getBytes()
metodo restituisce una matrice di byte.
1. getBytes () senza alcun parametro
Se non si passa alcun parametro, getBytes()
codifica la stringa utilizzando il set di caratteri predefinito della piattaforma.
Esempio: getBytes () senza alcun parametro
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)); ) )
Produzione
(74, 97, 118, 97)
Nota: abbiamo usato la Arrays
classe nell'esempio sopra per stampare l'array di byte in una forma leggibile. Non ha niente a che fare con getBytes(
).
2. getBytes () con il parametro CharSet
Qui sono CharSet
disponibili diversi in Java:
- UTF-8 : formato di trasformazione UCS a otto bit
- UTF-16 - Formato di trasformazione UCS a sedici bit
- UTF-16BE : formato di trasformazione UCS a sedici bit, ordine dei byte big-endian
- UTF-16LE - Formato di trasformazione UCS a sedici bit, ordine dei byte little-endian
- US-ASCII : ASCII a sette bit
- ISO-8859-1 - Alfabeto latino ISO n. 1
Esempio: getBytes () con il parametro 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)); ) )
Produzione
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Nota: nel programma sopra, abbiamo importato java.nio.charset.Charset
da utilizzare CharSet
. Inoltre, abbiamo importato la Arrays
classe per stampare l'array di byte in una forma leggibile.
3. getBytes () con parametro stringa
È inoltre possibile specificare il tipo di codifica getBytes()
utilizzando le stringhe. Quando si utilizza getBytes()
in questo modo, è necessario racchiudere il codice all'interno del blocco try… catch.
Esempio: getBytes () con parametro stringa
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"); ) ) )
Produzione
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: la codifica UTF-34 è errata
Nota: abbiamo importato java.util.Arrays per stampare l'array di byte in una forma leggibile. Non ha niente a che fare con getBytes()
.