Convierta una array de bytes en una string en Java
Esta publicación discutirá cómo convertir una array de bytes en una string en Java.
Sabemos que una string almacena datos textuales en Java, y byte[]
almacena datos binarios, por lo que debemos evitar la conversión entre ellos. Sin embargo, es posible que nos encontremos en situaciones en las que no tengamos otra opción. Esta publicación cubre cómo convertir una array de bytes en una string en Java, con y sin especificar la codificación de caracteres.
1. Sin codificación de caracteres
Podemos convertir el byte
array a String para el conjunto de caracteres ASCII sin siquiera especificar la codificación de caracteres. La idea es pasar el byte[]
al constructor de strings.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import java.io.IOException; import java.util.Arrays; // Convierte una array de bytes en una string en Java class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(); // System.out.println(Arrays.toString(bytes)); // Crea una string a partir de la array de bytes sin especificar // codificación de caracteres String string = new String(bytes); System.out.println(string); } } |
Resultado:
Techie Delight
2. Con codificación de caracteres
sabemos que un byte
contiene 8 bits, que pueden tener hasta 256 valores distintos. Esto funciona bien para el juego de caracteres ASCII, donde solo se usan los primeros 7 bits. Para conjuntos de caracteres con más de 256 valores, debemos especificar explícitamente la codificación, que indica cómo codificar caracteres en secuencias de bytes.
En el siguiente programa, hemos utilizado StandardCharsets.UTF_8
para especificar la codificación. Antes de Java 7, podemos usar el Charset.forName("UTF-8")
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import java.io.IOException; import java.nio.charset.StandardCharsets; // Convierte una array de bytes en una string en Java class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Techie Delight".getBytes(StandardCharsets.UTF_8); // Crear una string a partir de la array de bytes con codificación "UTF-8" String string = new String(bytes, StandardCharsets.UTF_8); System.out.println(string); } } |
Resultado:
Techie Delight
Se trata de convertir una array de bytes en Java String.