logo

Java BufferedOutputStream-klasse

In Java wordt de klasse BufferedOutputStream gebruikt om gegevens efficiënter naar een uitvoerstroom te schrijven. Het voegt een buffer toe aan een andere uitvoerstroom, waardoor het aantal I/O-bewerkingen wordt verminderd door gegevens tijdelijk in het geheugen op te slaan voordat deze naar de bestemming worden geschreven (zoals een bestand).

Het behoort tot het java.io-pakket en breidt de klasse FilterOutputStream uit.

Klasseverklaring

openbare klasse BufferedOutputStream breidt FilterOutputStream uit



  • Verbetert de I/O-prestaties door een buffer te gebruiken om directe schijftoegang te verminderen.
  • Gegevens worden naar de buffer geschreven en alleen als de buffer vol is (of leeggemaakt), worden deze naar de onderliggende uitvoerstroom verzonden.
  • Meestal gebruikt met FileOutputStream.
  • Helpt bij het schrijven van bytegegevens zoals afbeeldingen, tekstbestanden en binaire gegevens.

Constructeurs

  • GebufferdeOutputStream(OutputStream uit): Creëert een gebufferde uitvoerstroom met een standaardbuffergrootte van 8192 bytes.
  • BufferedOutputStream (OutputStream uit int-grootte): Creëert een gebufferde uitvoerstroom met de opgegeven buffergrootte.

Belangrijke methoden

MethodeBeschrijving
void write(int b)Schrijft een enkele byte naar de uitvoerstroom.
void write(byte[] b int off int len)Schrijft een deel van de byte-array naar de uitvoerstroom.
void flush()Spoelt de buffer leeg en dwingt het schrijven van gebufferde uitvoerbytes af.
void close()Sluit de stream en spoelt deze eerst door.

Java
import java.io.*; public class BufferedOutputStreamExample {  public static void main(String[] args) {  String data = 'BufferedOutputStream in Java Example';  try {  FileOutputStream fileOut = new FileOutputStream('output.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  byte[] bytes = data.getBytes();  bufferOut.write(bytes);  bufferOut.close();  System.out.println('Data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Uitvoer (inhoud van output.txt):

BufferedOutputStream in Java-voorbeeld

Voorbeeld 2: Gebruik van de flush()-methode

Java
import java.io.*; public class FlushExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('flush.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  bufferOut.write('Hello'.getBytes());  bufferOut.flush(); // ensures data is written immediately  bufferOut.close();  System.out.println('Flush example completed.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Uitvoer (inhoud van flush.txt):

rekha filmactrice

Hallo

bash anders als

Java
import java.io.*; public class LargeDataExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('large.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut 8192); // custom buffer size  for (int i = 0; i < 1000; i++) {  bufferOut.write(('Line ' + i + 'n').getBytes());  }  bufferOut.close();  System.out.println('Large data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Uitvoer (inhoud van large.txt eerste paar regels):

Lijn 0

Lijn 1

Lijn 2

...

Voordelen

  • Snellere schrijfprestaties vergeleken met ongebufferde streams.
  • Vermindert het aantal fysieke schrijfbewerkingen.
  • Maakt het efficiënt schrijven van grote gegevens mogelijk.
Quiz maken