logo

Java BufferedOutputStream Class

ב-Java משתמשים במחלקת BufferedOutputStream כדי לכתוב נתונים לזרם פלט בצורה יעילה יותר. הוא מוסיף מאגר לזרם פלט אחר ומפחית את מספר פעולות ה-I/O על ידי אחסון זמני של נתונים בזיכרון לפני כתיבתם ליעד (כמו קובץ).

זה שייך לחבילת java.io ומרחיב את מחלקת FilterOutputStream.

כיצד למיין arraylist ב-java

הצהרת כיתה

מחלקה ציבורית BufferedOutputStream מרחיבה את FilterOutputStream



  • משפר את ביצועי ה-I/O על ידי שימוש במאגר להפחתת גישה ישירה לדיסק.
  • הנתונים נכתבים למאגר ורק כאשר המאגר מלא (או נשטף) הם נשלחים לזרם הפלט הבסיסי.
  • משמש בדרך כלל עם FileOutputStream.
  • עוזר בכתיבת נתוני בתים כגון קבצי טקסט של תמונות ונתונים בינאריים.

בונים

  • BufferedOutputStream(OutputStream out): יוצר זרם פלט מאוחסן עם גודל מאגר ברירת מחדל של 8192 בתים.
  • BufferedOutputStream (גודל OutputStream out 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();  }  } } 

פלט (תוכן של output.txt):

BufferedOutputStream בדוגמה של Java

דוגמה 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();  }  } } 

פלט (תוכן של large.txt כמה שורות ראשונות):

שורה 0

שורה 1

שורה 2

סט כתבי כתיבה

...

יתרונות

  • ביצועי כתיבה מהירים יותר בהשוואה לזרמים ללא מאגר.
  • מפחית את מספר פעולות הכתיבה הפיזיות.
  • מאפשר כתיבת נתונים גדולים ביעילות.
צור חידון