English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este ejemplo, aprenderemos a convertir un flujo de entrada en un array de bytes en Java.
Para comprender este ejemplo, debe entender lo siguienteProgramación en JavaTema:}}
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main { public static void main(String args[]) { try { //Crear el flujo de entrada byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("Flujo de entrada: " + stream); //Convertir el flujo de entrada en un array de bytes byte[] array = stream.readAllBytes(); System.out.println("Array de bytes: " + Arrays.toString(array)); stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
Resultados de la salida
InputStream: java.io.ByteArrayInputStream@27082746 Array de bytes: [1, 2, 3, 4]
En el ejemplo anterior, creamos un flujo de entrada llamado stream (InputStream). Note esta línea,
byte[] array = stream.readAllBytes();
Aquí, el método readAllBytes() devuelve todos los datos del flujo y los almacena en un array de bytes.
Noticia:Ya hemos utilizado el método Arrays.toString() para convertir todo el array en una cadena.
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main { public static void main(String args[]) { try { //Crear el flujo de entrada byte[] input = {1, 2, 3, 4}; InputStream stream = new ByteArrayInputStream(input); System.out.println("Flujo de entrada: " + stream); //Crear un flujo de salida ByteArrayOutputStream output = new ByteArrayOutputStream(); //Crear un array de bytes para almacenar el flujo de entrada byte[] array = new byte[4]; int i; //Leer todos los datos del flujo de entrada al array while ((i = stream.read(array, 0, array.length)) != -1) { //Escribir todos los datos del array en la salida output.write(array, 0, i); } byte[] data = output.toByteArray(); //Convertir el flujo de entrada en un array de bytes System.out.println("ByteArray: ") + Arrays.toString(data)); stream.close(); } catch (Exception e) { e.getStackTrace(); } } }
Resultados de la salida
InputStream: java.io.ByteArrayInputStream@27082746 ByteArray: [1, 2, 3, 4]
En el ejemplo anterior, creamos un flujo de entrada input a partir de array. Nota la expresión
stream.read(array, 0, array.length)
Aquí, todos los elementos del flujo se almacenan en el array, comenzando en el índice 0. Luego, almacenamos todos los elementos del array en el flujo de salida llamado output.
output.write(array, 0, i)
Por último, llamamos al método toByteArray() de la clase ByteArrayOutputStream para convertir la salida de flujo en un array de bytes llamado data.