Java BufferedOutputStream Sınıfı

Java'da BufferedOutputStream sınıfı, verileri bir çıkış akışına daha verimli bir şekilde yazmak için kullanılır. Verileri hedefe (bir dosya gibi) yazmadan önce geçici olarak bellekte depolayarak G/Ç işlemlerinin sayısını azaltan başka bir çıkış akışına bir arabellek ekler.

Java.io paketine aittir ve FilterOutputStream sınıfını genişletir.

Sınıf Beyanı

genel sınıf BufferedOutputStream, FilterOutputStream'i genişletiyor

  • Doğrudan disk erişimini azaltmak için bir arabellek kullanarak G/Ç performansını artırır.
  • Veriler arabelleğe yazılır ve yalnızca arabellek dolduğunda (veya temizlendiğinde) temeldeki çıktı akışına gönderilir.
  • Genellikle FileOutputStream ile kullanılır.
  • Görüntü metin dosyaları ve ikili veriler gibi bayt verilerinin yazılmasına yardımcı olur.

İnşaatçılar

  • BufferedOutputStream(OutputStream çıkışı): Varsayılan arabellek boyutu 8192 bayt olan arabelleğe alınmış bir çıkış akışı oluşturur.
  • BufferedOutputStream(OutputStream out int size): Belirtilen arabellek boyutuyla arabelleğe alınmış bir çıkış akışı oluşturur.

Önemli Yöntemler

Yöntem Tanım
void write(int b) Çıkış akışına tek bir bayt yazar.
void write(byte[] b int off int len) Bayt dizisinin bir kısmını çıkış akışına yazar.
void flush() Arabelleği temizler ve arabelleğe alınmış çıktı baytlarının yazılmasını zorlar.
void close() Önce akışı temizleyerek akışı kapatır.

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

Çıktı (output.txt içeriği):

Java Örneğinde BufferedOutputStream

Örnek 2: Flush() Yöntemini Kullanma

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

Çıktı (flush.txt içeriği):

Merhaba

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

Çıktı (büyük.txt'nin ilk birkaç satırının içeriği):

Satır 0

1. satır

Satır 2

...

Avantajları

  • Arabelleksiz akışlara kıyasla daha hızlı yazma performansı.
  • Fiziksel yazma işlemlerinin sayısını azaltır.
  • Büyük verilerin verimli bir şekilde yazılmasına olanak tanır.
Test Oluştur