V tem primeru se bomo naučili pretvoriti vhodni tok v bajtno matriko v Javi.
Če želite razumeti ta primer, morate poznati naslednje programske teme Java:
- Razred Java InputStream
- Razred Java ByteArrayInputStream
- Razred Java ByteArrayOutputStream
Primer 1: Program Java za pretvorbo InputStream v bajtno matriko
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(); ) ) )
Izhod
Vhodni tok: java.io.ByteArrayInputStream@27082746 Bajtna matrika: (1, 2, 3, 4)
V zgornjem primeru smo ustvarili vhodni tok z imenom stream. Upoštevajte vrstico,
byte() array = stream.readAllBytes();
Tu readAllBytes()
metoda vrne vse podatke iz toka in shrani v bajtno matriko.
Opomba : Z Arrays.toString()
metodo smo pretvorili celotno matriko v niz.
Primer 2: Pretvorite InputStream v bajtno matriko z uporabo izhodnega 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(); ) ) )
Izhod
Vhodni tok: java.io.ByteArrayInputStream@27082746 Bajtna matrika: (1, 2, 3, 4)
V zgornjem primeru smo iz vnosa matrike ustvarili vhodni tok. Upoštevajte izraz,
stream.read(array, 0, array.length)
Tu so vsi elementi iz toka shranjeni v matriki, začenši z indeksom 0 . Nato vse elemente matrike shranimo v izhodni tok z imenom output.
output.write(array, 0, i)
Končno pokličemo še toByteArray()
metodo ByteArrayOutputStream
razreda za pretvorbo izhodnega toka v bajtno matriko z imenom data.