Java program za pretvorbu InputStreama u bajtni niz

U ovom ćemo primjeru naučiti pretvoriti ulazni tok u bajtni niz u Javi.

Da biste razumjeli ovaj primjer, trebali biste imati znanje o sljedećim temama programiranja Java:

  • Java InputStream klasa
  • Java ByteArrayInputStream klasa
  • Java ByteArrayOutputStream klasa

Primjer 1: Java program za pretvorbu InputStream u bajtni niz

 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(); ) ) )

Izlaz

 Ulazni tok: java.io.ByteArrayInputStream@27082746 Niz bajtova: (1, 2, 3, 4)

U gornjem primjeru stvorili smo ulazni tok pod nazivom stream. Zabilježite crtu,

 byte() array = stream.readAllBytes();

Ovdje readAllBytes()metoda vraća sve podatke iz toka i pohranjuje u bajtni niz.

Napomena : Arrays.toString()Metodu smo pretvorili čitav niz u niz.

Primjer 2: Pretvorite InputStream u bajtni niz pomoću izlaznog toka

 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(); ) ) )

Izlaz

 Ulazni tok: java.io.ByteArrayInputStream@27082746 Niz bajtova: (1, 2, 3, 4)

U gornjem primjeru stvorili smo ulazni tok od ulaza polja. Primijetite izraz,

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

Ovdje su svi elementi iz toka pohranjeni u polje, počevši od indeksa 0 . Zatim pohranjujemo sve elemente niza u izlazni tok nazvan output.

 output.write(array, 0, i)

Konačno, pozivamo toByteArray()metodu ByteArrayOutputStreamklase, da pretvorimo izlazni tok u bajtni niz s podacima.

Zanimljivi članci...