فئة جافا BufferedOutputStream

في Java، يتم استخدام فئة BufferedOutputStream لكتابة البيانات إلى دفق الإخراج بشكل أكثر كفاءة. فهو يضيف مخزنًا مؤقتًا إلى دفق إخراج آخر مما يقلل عدد عمليات الإدخال / الإخراج عن طريق تخزين البيانات مؤقتًا في الذاكرة قبل كتابتها إلى الوجهة (مثل الملف).

إنه ينتمي إلى حزمة java.io ويمتد إلى فئة FilterOutputStream.

إعلان الطبقة

تعمل الفئة العامة BufferedOutputStream على توسيع FilterOutputStream

  • يعمل على تحسين أداء الإدخال/الإخراج باستخدام مخزن مؤقت لتقليل الوصول المباشر إلى القرص.
  • تتم كتابة البيانات إلى المخزن المؤقت وفقط عندما يكون المخزن المؤقت ممتلئًا (أو متدفقًا) يتم إرساله إلى دفق الإخراج الأساسي.
  • يُستخدم عادةً مع FileOutputStream.
  • يساعد في كتابة بيانات البايت مثل الصور والملفات النصية والبيانات الثنائية.

البنائين

  • BufferedOutputStream (إخراج OutputStream): ينشئ دفق إخراج مخزَّنًا بحجم مخزن مؤقت افتراضي يبلغ 8192 بايت.
  • BufferedOutputStream (حجم OutputStream int): إنشاء دفق إخراج مخزَّن بحجم المخزن المؤقت المحدد.

طرق مهمة

طريقة وصف
void write(int b) يكتب بايت واحد إلى دفق الإخراج.
void write(byte[] b int off int len) يكتب جزءًا من مصفوفة البايت إلى دفق الإخراج.
void flush() يقوم بمسح المخزن المؤقت ويفرض كتابة أي بايتات إخراج مخزنة مؤقتًا.
void close() يغلق الدفق بغسله أولاً.

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

الإخراج (محتوى الإخراج.txt):

BufferedOutputStream في مثال جافا

مثال 2: استخدام طريقة Flush()

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

الإخراج (محتوى Flush.txt):

مرحبًا

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

الإخراج (محتوى الأسطر القليلة الأولى كبيرة.txt):

السطر 0

السطر 1

السطر 2

...

المزايا

  • أداء كتابة أسرع مقارنة بالتدفقات غير المخزنة.
  • يقلل من عدد عمليات الكتابة الفعلية.
  • يسمح بكتابة البيانات الكبيرة بكفاءة.
إنشاء اختبار