Metoden Java String getBytes () koder strengen i en sekvens af bytes og gemmer den i et byte-array.
Syntaksen for String- getBytes()
metoden er:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Her er streng et objekt i String
klassen.
Den getBytes()
metode returnerer en byte array.
1. getBytes () uden parametre
Hvis du ikke videregiver nogen parametre, getBytes()
koder du strengen ved hjælp af platformens standardtegn.
Eksempel: getBytes () uden parametre
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)); ) )
Produktion
(74, 97, 118, 97)
Bemærk: Vi har brugt Arrays
klassen i eksemplet ovenfor til at udskrive byte-arrayet i en læsbar form. Det har intet at gøre med getBytes(
).
2. getBytes () Med CharSet-parameter
Her er forskellige CharSet
tilgængelige i java:
- UTF-8 - Otte-bit UCS Transformation Format
- UTF-16 - Seksten-bit UCS-transformationsformat
- UTF-16BE - Seksten-bit UCS Transformation Format, big-endian byte rækkefølge
- UTF-16LE - Seksten-bit UCS-transformationsformat, lille endian byte-rækkefølge
- US-ASCII - Syv-bit ASCII
- ISO-8859-1 - ISO Latin Alfabet nr. 1
Eksempel: getBytes () med CharSet-parameter
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)); ) )
Produktion
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Bemærk: I ovenstående program har vi importeret java.nio.charset.Charset
til brug CharSet
. Og vi har importeret Arrays
klassen til at udskrive byte-arrayet i en læsbar form.
3. getBytes () med strengparameter
Du kan også angive kodningstypen, der skal getBytes()
bruges ved hjælp af strenge. Når du bruger getBytes()
på denne måde, skal du pakke koden inde i prøve … fangstblok.
Eksempel: getBytes () med strengparameter
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"); ) ) )
Produktion
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.Understøttet EncodingException: UTF-34-kodning er forkert
Bemærk: Vi har importeret java.util.Arrays til at udskrive byte-arrayet i en læsbar form. Det har intet at gøre med getBytes()
.