Java String getBytes ()

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 Stringklassen.

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 Arraysklassen 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 CharSettilgæ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.Charsettil brug CharSet. Og vi har importeret Arraysklassen 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().

Interessante artikler...