public class

BufferedOutputStream

extends FilterOutputStream
java.lang.Object
   ↳ java.io.OutputStream
     ↳ java.io.FilterOutputStream
       ↳ java.io.BufferedOutputStream

Class Overview

Wraps an existing OutputStream and buffers the output. Expensive interaction with the underlying input stream is minimized, since most (smaller) requests can be satisfied by accessing the buffer alone. The drawback is that some extra space is required to hold the buffer and that copying takes place when flushing that buffer, but this is usually outweighed by the performance benefits.

A typical application pattern for the class looks like this:

 BufferedOutputStream buf = new BufferedOutputStream(new FileOutputStream("file.java"));
 

Summary

Fields
protected byte[] buf The buffer containing the bytes to be written to the target stream.
protected int count The total number of bytes inside the byte array buf.
[Expand]
Inherited Fields
From class java.io.FilterOutputStream
Public Constructors
BufferedOutputStream(OutputStream out)
Constructs a new BufferedOutputStream on the OutputStream out.
BufferedOutputStream(OutputStream out, int size)
Constructs a new BufferedOutputStream on the OutputStream out.
Public Methods
synchronized void flush()
Flushes this stream to ensure all pending data is written out to the target stream.
synchronized void write(int oneByte)
Writes one byte to this stream.
synchronized void write(byte[] buffer, int offset, int length)
Writes count bytes from the byte array buffer starting at offset to this stream.
[Expand]
Inherited Methods
From class java.io.FilterOutputStream
From class java.io.OutputStream
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable

Fields

protected byte[] buf

The buffer containing the bytes to be written to the target stream.

protected int count

The total number of bytes inside the byte array buf.

Public Constructors

public BufferedOutputStream (OutputStream out)

Constructs a new BufferedOutputStream on the OutputStream out. The buffer size is set to the default value of 8 KB.

Parameters
out the OutputStream for which write operations are buffered.

public BufferedOutputStream (OutputStream out, int size)

Constructs a new BufferedOutputStream on the OutputStream out. The buffer size is set to size.

Parameters
out the output stream for which write operations are buffered.
size the size of the buffer in bytes.
Throws
IllegalArgumentException if size <= 0.

Public Methods

public synchronized void flush ()

Flushes this stream to ensure all pending data is written out to the target stream. In addition, the target stream is flushed.

Throws
IOException if an error occurs attempting to flush this stream.

public synchronized void write (int oneByte)

Writes one byte to this stream. Only the low order byte of the integer oneByte is written. If there is room in the buffer, the byte is copied into the buffer and the count incremented. Otherwise, the buffer plus oneByte are written to the target stream, the target is flushed, and the buffer is reset.

Parameters
oneByte the byte to be written.
Throws
IOException if an error occurs attempting to write to this stream.

public synchronized void write (byte[] buffer, int offset, int length)

Writes count bytes from the byte array buffer starting at offset to this stream. If there is room in the buffer to hold the bytes, they are copied in. If not, the buffered bytes plus the bytes in buffer are written to the target stream, the target is flushed, and the buffer is cleared.

Parameters
buffer the buffer to be written.
offset the start position in buffer from where to get bytes.
length the number of bytes from buffer to write to this stream.
Throws
IndexOutOfBoundsException if offset < 0 or length < 0, or if offset + length is greater than the size of buffer.
IOException if an error occurs attempting to write to this stream.
NullPointerException if buffer is null.