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