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

教程基础Java

Controllo dei flussi Java

Array Java

Programmazione orientata agli oggetti (I) Java

Programmazione orientata agli oggetti (II) Java

Programmazione orientata agli oggetti (III) Java

Gestione delle eccezioni Java

Lista Java (List)

Queue (coda) Java

Map di Java

Set di Java

Input/Output (I/O) Java

Reader/Writer Java

Altri argomenti Java

Il programma Java converte InputStream in array di byte (bytearray)

Esempi Java completi

In questo esempio, impareremo a convertire un flusso di input in un array di byte nel Java.

Per comprendere questo esempio, dovresti conoscere quanto segueProgrammazione JavaArgomento:

Esempio 1: Programma Java per convertire InputStream in array di byte

import java.io.InputStream;
import java.util.Arrays;
import java.io.ByteArrayInputStream;
public class Main {
  public static void main(String args[]) {
    try {
      //Creare il flusso di input
      byte[] input = {1, 2, 3, 4};
      InputStream stream = new ByteArrayInputStream(input);
      System.out.println("Flusso di input: " + stream);
      //Convertire il flusso di input in un array di byte
      byte[] array = stream.readAllBytes();
      System.out.println("Array di byte: " + Arrays.toString(array))
      stream.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Risultato di output

Stream di input: java.io.ByteArrayInputStream@27082746
Array di byte: [1, 2, 3, 4]

Nell'esempio sopra, abbiamo creato un flusso di input chiamato stream (InputStream). Nota questa riga,

byte[] array = stream.readAllBytes();

In questo caso, il metodo readAllBytes() restituisce tutti i dati dal flusso e li memorizza in un array di byte.

Attenzione:Abbiamo utilizzato il metodo Arrays.toString() per convertire l'intero array in una stringa.

Esempio 2: Convertire InputStream in array di byte utilizzando lo stream di output

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 {
      //Creare il flusso di input
      byte[] input = {1, 2, 3, 4};
      InputStream stream = new ByteArrayInputStream(input);
      System.out.println("Flusso di input: " + stream);
      //Creare un flusso di output
      ByteArrayOutputStream output = new ByteArrayOutputStream();
      //Creare un array di byte per memorizzare il flusso di input
      byte[] array = new byte[4];
      int i;
      //Leggere tutti i dati del flusso di input nell'array
      while ((i = stream.read(array, 0, array.length)) != -1) {
        //Scrivere tutti i dati dell'array nell'output
        output.write(array, 0, i);
      }
      byte[] data = output.toByteArray();
      //Convertire il flusso di input in un array di byte
      System.out.println("Array di byte: " + Arrays.toString(data));
      stream.close();
    }
    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

Risultato di output

Stream di input: java.io.ByteArrayInputStream@27082746
Array di byte: [1, 2, 3, 4]

Nell'esempio sopra, abbiamo creato uno stream di input input dall'array. Nota l'espressione

stream.read(array, 0, array.length)

In questo caso, tutti gli elementi dello stream sono memorizzati nell'array, che inizia dall'indice 0. Poi, memorizziamo tutti gli elementi dell'array nello stream di output chiamato output.

output.write(array, 0, i)

Infine, chiamiamo il metodo toByteArray() della classe ByteArrayOutputStream per convertire lo stream di output in un array di byte chiamato data.

Esempi Java completi