Šajā piemērā mēs iemācīsimies pārveidot ievades straumi Java baitu masīvā.
Lai saprastu šo piemēru, jums jāpārzina šādas Java programmēšanas tēmas:
- Java InputStream klase
- Java ByteArrayInputStream klase
- Java ByteArrayOutputStream klase
1. piemērs: Java programma InputStream konvertēšanai uz baitu masīvu
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(); ) ) )
Rezultāts
Ievades straume: java.io.ByteArrayInputStream@27082746 baitu masīvs: (1, 2, 3, 4)
Iepriekš minētajā piemērā mēs esam izveidojuši ievades straumi ar nosaukumu straume. Ievērojiet līniju,
byte() array = stream.readAllBytes();
Šeit readAllBytes()
metode atgriež visus datus no straumes un saglabā baitu masīvā.
Piezīme . Mēs izmantojām Arrays.toString()
metodi, lai visu masīvu pārveidotu par virkni.
2. piemērs: konvertējiet InputStream uz baitu masīvu, izmantojot Output Stream
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(); ) ) )
Rezultāts
Ievades straume: java.io.ByteArrayInputStream@27082746 baitu masīvs: (1, 2, 3, 4)
Iepriekš minētajā piemērā mēs esam izveidojuši ievades plūsmu no masīva ievades. Ievērojiet izteicienu,
stream.read(array, 0, array.length)
Šeit visi straumes elementi tiek glabāti masīvā, sākot no 0 indeksa . Pēc tam visus masīva elementus mēs saglabājam izvades plūsmā ar nosaukumu output.
output.write(array, 0, i)
Visbeidzot, mēs saucam par klases toByteArray()
metodi ByteArrayOutputStream
, lai izejas straumi pārveidotu par baitu masīvu ar nosaukumu.