Šioje pamokoje pavyzdžių pagalba sužinosime apie „Java ByteArrayOutputStream“ ir jos metodus.
ByteArrayOutputStream
Iš klasės java.io
paketo gali būti naudojamas rašyti išvesties duomenų masyvo (bitais).
Tai pratęsia OutputStream
abstrakčią klasę.
Pastaba : ByteArrayOutputStream
palaiko vidinį baitų masyvą duomenims saugoti.
Sukurkite „ByteArrayOutputStream“
Norėdami sukurti baitų masyvo išvesties srautą, pirmiausia turime importuoti java.io.ByteArrayOutputStream
paketą. Kai importuosime paketą, galime sukurti išvesties srautą.
// Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream();
Čia mes sukūrėme išvesties srautą, kuris įrašys duomenis į baitų masyvą, kurio numatytasis dydis yra 32 baitai. Tačiau mes galime pakeisti numatytąjį masyvo dydį.
// Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Čia dydis nurodo masyvo ilgį.
„ByteArrayOutputStream“ metodai
ByteArrayOutputStream
Klasė suteikia skirtingų metodų esančių įgyvendinimą OutputStream
klasėje.
rašyti () metodas
write(int byte)
- įrašo nurodytą baitą į išvesties srautąwrite(byte() array)
- rašo baitus iš nurodyto masyvo į išvesties srautąwrite(byte() arr, int start, int length)
- rašo baitų skaičių, lygų ilgiui išvesties srautui iš masyvo pradedant nuo padėties pradžioswriteTo(ByteArrayOutputStream out1)
- įrašo visus dabartinio išvesties srauto duomenis į nurodytą išvesties srautą
Pavyzdys: ByteArrayOutputStream duomenims rašyti
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is a line of text inside the string."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); byte() array = data.getBytes(); // Writes data to the output stream out.write(array); // Retrieves data from the output stream in string format String streamData = out.toString(); System.out.println("Output stream: " + streamData); out.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) )
Rezultatas
Išvesties srautas: tai teksto eilutė eilutės viduje.
Ankstesniame pavyzdyje mes sukūrėme baitų masyvo išvesties srautą, pavadintą išvestimi.
ByteArrayOutputStream output = new ByteArrayOutputStream();
Norėdami įrašyti duomenis į išvesties srautą, mes naudojome write()
metodą.
Pastaba : Programoje getBytes()
naudojamas metodas paverčia eilutę į baitų masyvą.
Prieiga prie duomenų iš „ByteArrayOutputStream“
toByteArray()
- grąžina masyvą, esantį išvesties srautetoString()
- grąžina visus išvesties srauto duomenis eilutės forma
Pavyzdžiui,
import java.io.ByteArrayOutputStream; class Main ( public static void main(String() args) ( String data = "This is data."; try ( // Creates an output stream ByteArrayOutputStream out = new ByteArrayOutputStream(); // Writes data to the output stream out.write(data.getBytes()); // Returns an array of bytes byte() byteData = out.toByteArray(); System.out.print("Data using toByteArray(): "); for(int i=0; i
Output
Data using toByteArray(): This is data. Data using toString(): This is data.
In the above example, we have created an array of bytes to store the data returned by the
toByteArray()
method.
We then have used the for loop to access each byte from the array. Here, each byte is converted into the corresponding character using typecasting.
close() Method
To close the output stream, we can use the
close()
method.
However, the
close()
method has no effect in ByteArrayOutputStream
class. We can use the methods of this class even after the close()
method is called.
Other Methods of ByteArrayOutputStream
Metodai | Aprašymai |
---|---|
size() | grąžina išvesties srauto masyvo dydį |
flush() | išvalo išvesties srautą |
To learn more, visit Java ByteArrayOutputStream (official Java documentation).