Java.Streams.What classes allow you to speed up reading/writing by using a buffer?

🚀 Buffered I/O Classes in Java

🔹 1. BufferedInputStream

  • Extends: FilterInputStream
  • Buffers: Raw byte input
  • Used with: InputStream
InputStream in = new BufferedInputStream(new FileInputStream("file.bin"));

🔹 2. BufferedOutputStream

  • Extends: FilterOutputStream
  • Buffers: Raw byte output
  • Used with: OutputStream
OutputStream out = new BufferedOutputStream(new FileOutputStream("file.bin"));

🔹 3. BufferedReader

  • Extends: Reader
  • Buffers: Character input
  • Adds: readLine() method (super useful!)
Reader reader = new BufferedReader(new FileReader("file.txt"));

🔹 4. BufferedWriter

  • Extends: Writer
  • Buffers: Character output
Writer writer = new BufferedWriter(new FileWriter("file.txt"));

🧠 Why buffering helps

Without buffering:

  • Every read() or write() hits the disk or network — very slow.

With buffering:

  • Data is read/written in large chunks behind the scenes.
  • Fewer system calls = faster and more efficient I/O.

⚙️ Diagram: Buffering Workflow

Raw File        ←→      InputStream ←→ BufferedInputStream ←→ your app
Plain Text File ←→ FileReader ←→ BufferedReader ←→ your app

✅ Summary Table

ClassForData TypeBuffering TypeExtra Features
BufferedInputStreamReadingbyteInput bufferN/A
BufferedOutputStreamWritingbyteOutput bufferN/A
BufferedReaderReadingcharInput bufferreadLine()
BufferedWriterWritingcharOutput buffernewLine()
This entry was posted in Без рубрики. Bookmark the permalink.

Leave a Reply

Your email address will not be published.