Hoy aprenderemos cómo convertir una cadena a un arreglo de bytes en Java. También aprenderemos cómo convertir un arreglo de bytes a una cadena en Java.
Cadena a arreglo de bytes
Podemos utilizar el método getBytes()
de la clase String para codificar la cadena en una secuencia de bytes utilizando la codificación de caracteres predeterminada de la plataforma. Este método está sobrecargado y también podemos pasar Charset
como argumento. Aquí hay un programa simple que muestra cómo convertir una cadena a un arreglo de bytes en Java.
package com.journaldev.util;
import java.util.Arrays;
public class StringToByteArray {
public static void main(String[] args) {
String str = "PANKAJ";
byte[] byteArr = str.getBytes();
// imprimir los elementos byte[]
System.out.println("String to byte array: " + Arrays.toString(byteArr));
}
}
La imagen a continuación muestra la salida cuando ejecutamos el programa anterior. También podemos obtener el arreglo de bytes utilizando el siguiente código.
byte[] byteArr = str.getBytes("UTF-8");
Sin embargo, si proporcionamos el nombre del conjunto de caracteres, entonces tendremos que capturar la UnsupportedEncodingException
excepción o lanzarla. Un enfoque mejor es utilizar la clase StandardCharsets
introducida en Java 1.7, como se muestra a continuación.
byte[] byteArr = str.getBytes(StandardCharsets.UTF_8);
Eso es todo, son las diferentes formas de convertir una cadena a un arreglo de bytes en Java.
Java byte array to String
Veamos un programa simple que muestra cómo convertir una matriz de bytes a una cadena en Java.
package com.journaldev.util;
public class ByteArrayToString {
public static void main(String[] args) {
byte[] byteArray = { 'P', 'A', 'N', 'K', 'A', 'J' };
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray);
String str1 = new String(byteArray1);
System.out.println(str);
System.out.println(str1);
}
}
La imagen siguiente muestra la salida producida por el programa anterior. ¿Notaste que estoy proporcionando un carácter al crear la matriz de bytes? Funciona gracias a la autoboxing y el carácter ‘P’ se convierte en 80 en la matriz de bytes. Por eso la salida es la misma tanto para la conversión de matriz de bytes a cadena. La clase String también tiene un constructor donde podemos proporcionar una matriz de bytes y un Charset como argumento. Entonces, el siguiente código también se puede utilizar para convertir una matriz de bytes a una cadena en Java.
String str = new String(byteArray, StandardCharsets.UTF_8);
La clase String también tiene un método para convertir un subconjunto de la matriz de bytes a una cadena.
byte[] byteArray1 = { 80, 65, 78, 75, 65, 74 };
String str = new String(byteArray1, 0, 3, StandardCharsets.UTF_8);
El código anterior es perfectamente válido y el valor de ‘str’ será ‘PAN’. Eso es todo sobre cómo convertir una matriz de bytes a una cadena en Java.
Puedes ver más ejemplos de matrices en nuestro Repositorio de GitHub.
Referencia: Documentación de API de getBytes
Source:
https://www.digitalocean.com/community/tutorials/string-byte-array-java