Java BufferedOutputStream klasse

I Java bruges BufferedOutputStream-klassen til at skrive data til en outputstrøm mere effektivt. Den tilføjer en buffer til en anden outputstrøm, hvilket reducerer antallet af I/O-operationer ved midlertidigt at gemme data i hukommelsen, før de skrives til destinationen (som en fil).

Den hører til java.io-pakken og udvider FilterOutputStream-klassen.

Klasseerklæring

public class BufferedOutputStream udvider FilterOutputStream

  • Forbedrer I/O-ydeevnen ved at bruge en buffer til at reducere direkte diskadgang.
  • Data skrives til bufferen, og kun når bufferen er fuld (eller skyllet), sendes den til den underliggende outputstrøm.
  • Anvendes typisk med FileOutputStream.
  • Hjælper med at skrive bytedata såsom billedtekstfiler og binære data.

Konstruktører

  • BufretOutputStream(OutputStream ud): Opretter en bufferet outputstrøm med en standardbufferstørrelse på 8192 bytes.
  • BufretOutputStream(OutputStream ud int størrelse): Opretter en bufferet outputstrøm med den angivne bufferstørrelse.

Vigtige metoder

Metode Beskrivelse
void write(int b) Skriver en enkelt byte til outputstrømmen.
void write(byte[] b int off int len) Skriver en del af byte-arrayet til outputstrømmen.
void flush() Tømmer bufferen og tvinger alle bufferede outputbytes til at blive skrevet.
void close() Lukker strømmen og skyller den først.

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

Output (indhold af output.txt):

BufferedOutputStream i Java Eksempel

Eksempel 2: Brug af flush()-metoden

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

Output (indhold af flush.txt):

Hej

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

Output (indhold af large.txt første par linjer):

Linje 0

Linje 1

Linje 2

...

Fordele

  • Hurtigere skriveydeevne sammenlignet med ubuffrede streams.
  • Reducerer antallet af fysiske skriveoperationer.
  • Gør det muligt at skrive store data effektivt.
Opret Quiz