V tomto výukovém programu se pomocí příkladů dozvíme o prostředí Java BufferedOutputStream a jeho metodách.
BufferedOutputStream
Třída java.io
balení je používán s jinými výstupními proudy pro zápis dat (v bytech) efektivněji.
Rozšiřuje OutputStream
abstraktní třídu.
Práce BufferedOutputStream
BufferedOutputStream
Udrž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.BufferedOutputStream
nejprve 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 BufferdOutputStream
pojmenovanou vyrovnávací paměť s FileOutputStream
pojmenovaný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
BufferedOutputStream
Třída poskytuje implementace pro různé metody v OutputStream
třídě.
metoda write ()
write()
- zapíše jeden bajt do vnitřní vyrovnávací paměti výstupního prouduwrite(byte() array)
- zapíše bajty ze zadaného pole do výstupního prouduwrite(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).