Java String getBytes ()

De Java String getBytes () - methode codeert de string in een reeks bytes en slaat deze op in een byte-array.

De syntaxis van de String- getBytes()methode zijn:

 string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)

String is hier een object van de Stringklasse.

De getBytes()methode retourneert een byte-array.

1. getBytes () zonder parameters

Als u geen parameters doorgeeft, getBytes()codeert u de tekenreeks met de standaard tekenset van het platform.

Voorbeeld: getBytes () zonder parameters

 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)); ) )

Uitvoer

 (74, 97, 118, 97)

Opmerking: we hebben de Arraysklasse in het bovenstaande voorbeeld gebruikt om de byte-array in een leesbare vorm af te drukken. Het heeft er niets mee te maken getBytes().

2. getBytes () met CharSet-parameter

Hier zijn verschillende CharSetbeschikbaar in Java:

  • UTF-8 - Acht-bits UCS-transformatieformaat
  • UTF-16 - 16-bits UCS-transformatieformaat
  • UTF-16BE - Sixteen-bit UCS-transformatieformaat, big-endian bytevolgorde
  • UTF-16LE - zestien-bits UCS-transformatieformaat, bytevolgorde little-endian
  • US-ASCII - Zeven-bits ASCII
  • ISO-8859-1 - ISO Latijns alfabet nr.1

Voorbeeld: getBytes () met 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)); ) )

Uitvoer

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)

Opmerking: in het bovenstaande programma hebben we geïmporteerd java.nio.charset.Charsetom te gebruiken CharSet. En we hebben de Arraysklasse geïmporteerd om de byte-array in een leesbare vorm af te drukken.

3. getBytes () met stringparameter

U kunt ook het coderingstype specificeren om getBytes()strings te gebruiken. Wanneer u getBytes()op deze manier gebruikt, moet u de code in het blok try… catch plaatsen.

Voorbeeld: getBytes () met stringparameter

 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"); ) ) )

Uitvoer

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: UTF-34-codering is onjuist

Opmerking: we hebben java.util.Arrays geïmporteerd om de byte-array in een leesbare vorm af te drukken. Het heeft er niets mee te maken getBytes().

Interessante artikelen...