Java-programm InputStreami teisendamiseks baitide massiiviks

Selles näites õpime sisendvoo teisendama Java baitide massiiviks.

Selle näite mõistmiseks peaksid teil olema teadmised järgmistest Java programmeerimise teemadest:

  • Java InputStream klass
  • Klass Java ByteArrayInputStream
  • Klass Java ByteArrayOutputStream

Näide 1: Java-programm InputStreami teisendamiseks baitide massiiviks

 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äljund

 Sisendivoog: java.io.ByteArrayInputStream@27082746 baitide massiiv: (1, 2, 3, 4)

Ülaltoodud näites oleme loonud sisendvoo nimega voog. Pange tähele rida,

 byte() array = stream.readAllBytes();

Siin readAllBytes()tagastab meetod kõik andmed voost ja salvestab baitide massiivi.

Märkus . Oleme Arrays.toString()kogu massiivi stringiks teisendamiseks kasutanud meetodit.

Näide 2: teisendage InputStream baitmassiiviks, kasutades väljundvoogu

 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äljund

 Sisendivoog: java.io.ByteArrayInputStream@27082746 baitide massiiv: (1, 2, 3, 4)

Ülaltoodud näites oleme massiivi sisendist loonud sisendvoo. Pange tähele väljendit

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

Siin salvestatakse kõik voo elemendid massiivi, alustades indeksist 0 . Seejärel salvestame kõik massiivi elemendid väljundvoogu nimega väljund.

 output.write(array, 0, i)

Lõpuks kutsume klassi toByteArray()meetodit ByteArrayOutputStream, et väljundvoog teisendada baidimassiiviks nimega andmeteks.

Huvitavad Artiklid...