Java String getBytes ()

El método Java String getBytes () codifica la cadena en una secuencia de bytes y la almacena en una matriz de bytes.

La sintaxis del getBytes()método String es:

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

Aquí, la cadena es un objeto de la Stringclase.

El getBytes()método devuelve una matriz de bytes.

1. getBytes () sin ningún parámetro

Si no pasa ningún parámetro, getBytes()codifica la cadena utilizando el juego de caracteres predeterminado de la plataforma.

Ejemplo: getBytes () sin ningún parámetro

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

Salida

 (74, 97, 118, 97)

Nota: Hemos utilizado la Arraysclase en el ejemplo anterior para imprimir la matriz de bytes en una forma legible. No tiene nada que ver con getBytes().

2. getBytes () con parámetro CharSet

Aquí hay diferentes CharSetdisponibles en java:

  • UTF-8 : formato de transformación UCS de ocho bits
  • UTF-16 : formato de transformación UCS de dieciséis bits
  • UTF-16BE : formato de transformación UCS de dieciséis bits, orden de bytes big-endian
  • UTF-16LE : formato de transformación UCS de dieciséis bits, orden de bytes little-endian
  • US-ASCII - ASCII de siete bits
  • ISO-8859-1 - Alfabeto latino ISO No. 1

Ejemplo: getBytes () con parámetro 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)); ) )

Salida

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

Nota: En el programa anterior, hemos importado java.nio.charset.Charsetpara usar CharSet. Y hemos importado la Arraysclase para imprimir la matriz de bytes en una forma legible.

3. getBytes () con parámetro de cadena

También puede especificar el tipo de codificación para getBytes()usar cadenas. Cuando lo usa getBytes()de esta manera, debe envolver el código dentro del bloque try … catch.

Ejemplo: getBytes () con parámetro de cadena

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

Salida

 (74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: la codificación UTF-34 es incorrecta

Nota: Hemos importado java.util.Arrays para imprimir la matriz de bytes en una forma legible. No tiene nada que ver getBytes().

Articulos interesantes...