Java ByteArrayOutputStream (s příklady)

V tomto tutoriálu se pomocí příkladů dozvíme o prostředí Java ByteArrayOutputStream a jeho metodách.

ByteArrayOutputStreamTřída java.iobalení lze použít k zápisu pole výstupních dat (v bajtech).

Rozšiřuje OutputStreamabstraktní třídu.

Poznámka : In ByteArrayOutputStreamudržuje vnitřní pole bajtů pro ukládání dat.

Vytvořte ByteArrayOutputStream

Abychom mohli vytvořit výstupní proud bajtového pole, musíme java.io.ByteArrayOutputStreamnejprve importovat balíček. Jakmile balíček naimportujeme, můžeme vytvořit výstupní proud.

 // Creates a ByteArrayOutputStream with default size ByteArrayOutputStream out = new ByteArrayOutputStream(); 

Zde jsme vytvořili výstupní proud, který bude zapisovat data do pole bajtů s výchozí velikostí 32 bajtů. Můžeme však změnit výchozí velikost pole.

 // Creating a ByteArrayOutputStream with specified size ByteArrayOutputStream out = new ByteArrayOutputStream(int size); 

Zde velikost určuje délku pole.

Metody ByteArrayOutputStream

ByteArrayOutputStreamTřída poskytuje provádění různých metod přítomných ve OutputStreamtřídě.

metoda write ()

  • write(int byte) - zapíše zadaný bajt do výstupního proudu
  • write(byte() array) - zapíše bajty ze zadaného pole do výstupního proudu
  • write(byte() arr, int start, int length) - zapíše počet bajtů rovných délce do výstupního proudu z pole počínaje od začátku pozice
  • writeTo(ByteArrayOutputStream out1) - zapíše všechna data aktuálního výstupního proudu do zadaného výstupního proudu

Příklad: ByteArrayOutputStream pro zápis dat

 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(); ) ) ) 

Výstup

 Výstupní proud: Jedná se o řádek textu uvnitř řetězce. 

Ve výše uvedeném příkladu jsme vytvořili výstupní proud bajtového pole s názvem output.

 ByteArrayOutputStream output = new ByteArrayOutputStream(); 

K zápisu dat do výstupního proudu jsme použili write()metodu.

Poznámka : getBytes()Metoda použitá v programu převádí řetězec na pole bajtů.

Přistupovat k datům z ByteArrayOutputStream

  • toByteArray() - vrátí pole přítomné uvnitř výstupního proudu
  • toString() - vrací všechna data výstupního proudu ve formě řetězce

Například,

 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

Metody Popisy
size() vrací velikost pole ve výstupním proudu
flush() vymaže výstupní proud

To learn more, visit Java ByteArrayOutputStream (official Java documentation).

Zajímavé články...