Java BufferedOutputStream (s příklady)

V tomto výukovém programu se pomocí příkladů dozvíme o prostředí Java BufferedOutputStream a jeho metodách.

BufferedOutputStreamTřída java.iobalení je používán s jinými výstupními proudy pro zápis dat (v bytech) efektivněji.

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

Práce BufferedOutputStream

BufferedOutputStreamUdržuje vnitřní vyrovnávací paměti 8192 bajtů .

Během operace zápisu se bajty zapisují do interní vyrovnávací paměti místo na disk. Po vyplnění vyrovnávací paměti nebo uzavření datového proudu se celá vyrovnávací paměť zapíše na disk.

Proto je snížen počet komunikace na disk. Proto je psaní bajtů rychlejší BufferedOutputStream.

Vytvořte BufferedOutputStream

Aby bylo možné vytvořit BufferedOutputStream, musíme java.io.BufferedOutputStreamnejprve importovat balíček. Jakmile naimportujeme balíček, můžeme vytvořit výstupní proud.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

Ve výše uvedeném příkladu jsme vytvořili BufferdOutputStreampojmenovanou vyrovnávací paměť s FileOutputStreampojmenovaným souborem.

Zde má vnitřní vyrovnávací paměť výchozí velikost 8192 bajtů. Můžeme však také určit velikost vnitřní vyrovnávací paměti.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Vyrovnávací paměť pomůže rychleji zapisovat bajty do souborů.

Metody BufferedOutputStream

BufferedOutputStreamTřída poskytuje implementace pro různé metody v OutputStreamtřídě.

metoda write ()

  • write() - zapíše jeden bajt do vnitřní vyrovnávací paměti 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

Příklad: BufferedOutputStream pro zápis dat do souboru

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a line of text inside the file"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Ve výše uvedeném příkladu jsme vytvořili mezipaměť výstupního proudu s názvem výstup spolu s FileOutputStream. Výstupní proud je propojen se souborem output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

K zápisu dat do souboru jsme použili write()metodu.

Tady, když spustíme program, je soubor output.txt naplněn následujícím obsahem.

 This is a line of text inside the file. 

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

flush () metoda

K vymazání vnitřní vyrovnávací paměti můžeme použít flush()metodu. Tato metoda vynutí, aby výstupní proud zapisoval všechna data přítomná ve vyrovnávací paměti do cílového souboru. Například,

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Výstup

 Data se do souboru vyprázdní. 

Když spustíme program, soubor flush.txt je vyplněn textem představovaným daty řetězce.

metoda close ()

K uzavření mezipaměti výstupního proudu můžeme použít close()metodu. Jakmile je metoda volána, nemůžeme použít výstupní proud k zápisu dat.

Další informace najdete v Java BufferedOutputStream (oficiální dokumentace Java).

Zajímavé články...