Java BufferedOutputStream klase

Java programmā BufferedOutputStream tiek izmantota, lai efektīvāk rakstītu datus izvades straumē. Tas pievieno buferi citai izvades straumei, samazinot I/O operāciju skaitu, īslaicīgi saglabājot datus atmiņā pirms to ierakstīšanas galamērķī (piemēram, failā).

Tas pieder pakotnei java.io un paplašina FilterOutputStream klasi.

Klases deklarācija

publiskā klase BufferedOutputStream paplašina FilterOutputStream

  • Uzlabo I/O veiktspēju, izmantojot buferi, lai samazinātu tiešu piekļuvi diskam.
  • Dati tiek ierakstīti buferī un tikai tad, kad buferis ir pilns (vai izskalots), tie tiek nosūtīti uz pamatā esošo izvades plūsmu.
  • Parasti izmanto kopā ar FileOutputStream.
  • Palīdz rakstīt baitu datus, piemēram, attēlu teksta failus un bināros datus.

Konstruktori

  • BufferedOutputStream (OutputStream out): Izveido buferizētu izvades straumi ar noklusējuma bufera lielumu 8192 baiti.
  • BufferedOutputStream (OutputStream izejas iekšējais izmērs): Izveido buferizētu izvades straumi ar norādīto bufera izmēru.

Svarīgas metodes

Metode Apraksts
void write(int b) Ieraksta vienu baitu izvades straumē.
void write(byte[] b int off int len) Ieraksta daļu no baitu masīva izvades straumē.
void flush() Izskalo buferi un liek ierakstīt visus buferizētos izvades baitus.
void close() Aizver straumi, vispirms to izskalojot.

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

Izvade (faila output.txt saturs):

BufferedOutputStream Java piemērā

2. piemērs: flush() metodes izmantošana

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

Izvade (faila flush.txt saturs):

Sveiki

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

Izvade (faila large.txt pirmo rindiņu saturs):

0. rindiņa

1. rindiņa

2. rindiņa

...

Priekšrocības

  • Ātrāka rakstīšanas veiktspēja salīdzinājumā ar nebuferētām straumēm.
  • Samazina fizisko rakstīšanas darbību skaitu.
  • Ļauj efektīvi ierakstīt lielus datus.
Izveidojiet viktorīnu