Java ByteArrayOutputStream Class
Java ByteArrayOutputStream Class
In deze zelfstudie leren we over Java ByteArrayOutputStream en zijn methoden met behulp van voorbeelden.
De ByteArrayOutputStream
klasse van de java.io
pakket kan worden gebruikt om een array van uitvoergegevens te schrijven (in bytes).
Het verlengt de OutputStream
abstracte klasse.
Opmerking :In ByteArrayOutputStream
onderhoudt een interne array van bytes om de gegevens op te slaan.
Maak een ByteArrayOutputStream
Om een bytearray-uitvoerstroom te maken, moeten we de java.io.ByteArrayOutputStream
. importeren pakket eerst. Zodra we het pakket hebben geïmporteerd, kunnen we als volgt een uitvoerstroom maken.
// Creates a ByteArrayOutputStream with default size
ByteArrayOutputStream out = new ByteArrayOutputStream();
Hier hebben we een uitvoerstroom gemaakt die gegevens naar een array van bytes schrijft met een standaardgrootte van 32 bytes. We kunnen echter de standaardgrootte van de array wijzigen.
// Creating a ByteArrayOutputStream with specified size
ByteArrayOutputStream out = new ByteArrayOutputStream(int size);
Hier, de maat specificeert de lengte van de array.
Methoden van ByteArrayOutputStream
De ByteArrayOutputStream
class biedt de implementatie van de verschillende methoden die aanwezig zijn in de OutputStream
klasse.
write()-methode
write(int byte)
- schrijft de opgegeven byte naar de uitvoerstroomwrite(byte[] array)
- schrijft de bytes van de opgegeven array naar de uitvoerstroomwrite(byte[] arr, int start, int length)
- schrijft het aantal bytes gelijk aan lengte naar de uitvoerstroom van een array beginnend vanaf de positie startwriteTo(ByteArrayOutputStream out1)
- schrijft de volledige gegevens van de huidige uitvoerstroom naar de opgegeven uitvoerstroom
Voorbeeld:ByteArrayOutputStream om gegevens te schrijven
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();
}
}
}
Uitvoer
Output stream: This is a line of text inside the string.
In het bovenstaande voorbeeld hebben we een byte-array-uitvoerstroom gemaakt met de naam output .
ByteArrayOutputStream output = new ByteArrayOutputStream();
Om de gegevens naar de uitvoerstroom te schrijven, hebben we de write()
. gebruikt methode.
Opmerking :De getBytes()
methode die in het programma wordt gebruikt, converteert een string naar een array van bytes.
Toegang tot gegevens van ByteArrayOutputStream
toByteArray()
- geeft de array terug die aanwezig is in de uitvoerstroomtoString()
- retourneert de volledige gegevens van de uitvoerstroom in tekenreeksvorm
Bijvoorbeeld,
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<byteData.length; i++) {
System.out.print((char)byteData[i]);
}
// Returns a string
String stringData = out.toString();
System.out.println("\nData using toString(): " + stringData);
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
Uitvoer
Data using toByteArray(): This is data. Data using toString(): This is data.
In het bovenstaande voorbeeld hebben we een array van bytes gemaakt om de gegevens op te slaan die worden geretourneerd door de toByteArray()
methode.
We hebben vervolgens de for-lus gebruikt om toegang te krijgen tot elke byte uit de array. Hier wordt elke byte geconverteerd naar het overeenkomstige teken met behulp van typecasting.
close()-methode
Om de uitvoerstroom te sluiten, kunnen we de close()
. gebruiken methode.
Echter, de close()
methode heeft geen effect in ByteArrayOutputStream
klas. We kunnen de methoden van deze klasse zelfs gebruiken na de close()
methode wordt aangeroepen.
Andere methoden van ByteArrayOutputStream
Methoden | Beschrijvingen |
---|---|
size() | retourneert de grootte van de array in de uitvoerstroom |
flush() | wist de uitvoerstroom |
Ga voor meer informatie naar Java ByteArrayOutputStream (officiële Java-documentatie).
Java