Program Java na premenu InputStream na bajtové pole

V tomto príklade sa naučíme prevádzať vstupný prúd na bajtové pole v Jave.

Aby ste pochopili tento príklad, mali by ste mať znalosti nasledujúcich tém programovania v jazyku Java:

  • Trieda Java InputStream
  • Trieda Java ByteArrayInputStream
  • Trieda Java ByteArrayOutputStream

Príklad 1: Program Java na premenu InputStream na bajtové pole

 import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Výkon

 Vstupný prúd: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Vo vyššie uvedenom príklade sme vytvorili vstupný tok s názvom stream. Všimnite si riadok,

 byte() array = stream.readAllBytes();

Tu readAllBytes()metóda vracia všetky údaje z toku a ukladá ich do bajtového poľa.

Poznámka : Arrays.toString()Metódu sme použili na prevedenie celého poľa do reťazca.

Príklad 2: Konverzia InputStream na bajtové pole pomocou výstupného toku

 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 ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )

Výkon

 Vstupný prúd: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)

Vo vyššie uvedenom príklade sme vytvorili vstupný prúd zo vstupu poľa. Všimnite si výraz,

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

Tu sú všetky prvky z toku uložené v poli, počnúc indexom 0 . Potom uložíme všetky prvky poľa do výstupného toku s názvom output.

 output.write(array, 0, i)

Na záver zavoláme toByteArray()metódu ByteArrayOutputStreamtriedy, ktorá prevádza výstupný prúd na bajtové pole s názvom data.

Zaujímavé články...