English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de flujo de Java

Java Arreglo

Java Programación Orientada a Objetos (I)

Java Programación Orientada a Objetos (II)

Java Programación Orientada a Objetos (III)

Manejo de excepciones en Java

Java Lista (List)

Java Queue (colas)

Colecciones Map de Java

Colecciones Set de Java

Java Entrada/Salida (I/O)/O)

Reader de Java/Writer

Otras temáticas de Java

El programa Java convierte InputStream en un array de bytes (bytearray)

Java 实例大全

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:}}

Ejemplo1:Programa Java para convertir InputStream en un array de bytes

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.

Ejemplo2:Usar el flujo de salida para convertir InputStream en un array de bytes

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.

Java 实例大全