Java String getBytes () -metoden koder strengen i en bytesekvens og lagrer den i en 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()
metoden returnerer en byte array.
1. getBytes () uten parametere
Hvis du ikke sender noen parametere, getBytes()
koder du strengen ved hjelp av plattformens standardtegnsett.
Eksempel: getBytes () uten parametere
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)); ) )
Produksjon
(74, 97, 118, 97)
Merk: Vi har brukt Arrays
klassen i eksemplet ovenfor for å skrive ut byte-arrayet i en lesbar form. Det har ingenting å gjøre med getBytes(
).
2. getBytes () Med CharSet-parameter
Her er forskjellige CharSet
tilgjengelige i java:
- UTF-8 - Åtte-bits UCS-transformasjonsformat
- UTF-16 - Seksten-biters UCS-transformasjonsformat
- UTF-16BE - Seksten-biters UCS-transformasjonsformat, stor endian -bytebestilling
- UTF-16LE - Seksten-biters UCS-transformasjonsformat, liten endian bytebestilling
- 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)); ) )
Produksjon
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Merk: I programmet ovenfor har vi importert java.nio.charset.Charset
til bruk CharSet
. Og vi har importert Arrays
klassen for å skrive ut byte-arrayet i en lesbar form.
3. getBytes () med strengparameter
Du kan også spesifisere kodingstypen du vil getBytes()
bruke strenger. Når du bruker getBytes()
på denne måten, må du pakke koden inn i try… catch block.
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"); ) ) )
Produksjon
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.Understøttet EncodingException: UTF-34-koding er feil
Merk: Vi har importert java.util.Arrays for å skrive ut byte-arrayet i en lesbar form. Det har ingenting å gjøre med getBytes()
.