Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Fields](https://developer.android.com/reference/java/io/BufferedOutputStream#lfields) \| [Inherited Fields](https://developer.android.com/reference/java/io/BufferedOutputStream#inhfields) \| [Ctors](https://developer.android.com/reference/java/io/BufferedOutputStream#pubctors) \| [Methods](https://developer.android.com/reference/java/io/BufferedOutputStream#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/io/BufferedOutputStream#inhmethods)

# BufferedOutputStream

` public class BufferedOutputStream `   
` ` ` ` ` extends https://developer.android.com/reference/java/io/FilterOutputStream ` ` `

|---|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) ||||
| ↳ | [java.io.OutputStream](https://developer.android.com/reference/java/io/OutputStream) |||
|   | ↳ | [java.io.FilterOutputStream](https://developer.android.com/reference/java/io/FilterOutputStream) ||
|   |   | ↳ | java.io.BufferedOutputStream |

<br />

*** ** * ** ***

The class implements a buffered output stream. By setting up such an output stream, an application can write bytes to the underlying output stream without necessarily causing a call to the underlying system for each byte written.

## Summary

| ### Fields ||
|---|---|
| ` protected byte[]` | `https://developer.android.com/reference/java/io/BufferedOutputStream#buf` The internal buffer where data is stored. |
| ` protected int` | `https://developer.android.com/reference/java/io/BufferedOutputStream#count` The number of valid bytes in the buffer. |

### Inherited fields

From class `https://developer.android.com/reference/java/io/FilterOutputStream` ` protected https://developer.android.com/reference/java/io/OutputStream` `https://developer.android.com/reference/java/io/FilterOutputStream#out`

The underlying output stream to be filtered.

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/io/BufferedOutputStream#BufferedOutputStream(java.io.OutputStream)(https://developer.android.com/reference/java/io/OutputStream out) ` Creates a new buffered output stream to write data to the specified underlying output stream. |
| ` https://developer.android.com/reference/java/io/BufferedOutputStream#BufferedOutputStream(java.io.OutputStream,%20int)(https://developer.android.com/reference/java/io/OutputStream out, int size) ` Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/java/io/BufferedOutputStream#flush()() ` Flushes this buffered output stream. |
| ` void` | ` https://developer.android.com/reference/java/io/BufferedOutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) ` Writes `len` bytes from the specified byte array starting at offset `off` to this buffered output stream. |
| ` void` | ` https://developer.android.com/reference/java/io/BufferedOutputStream#write(int)(int b) ` Writes the specified byte to this buffered output stream. |

### Inherited methods

From class ` https://developer.android.com/reference/java/io/FilterOutputStream ` ` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#close()() `

Closes this output stream and releases any system resources associated with the stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#flush()() `

Flushes this output stream and forces any buffered output bytes to be written out to the stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(byte[])(byte[] b) `

Writes `b.length` bytes to this output stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) `

Writes `len` bytes from the specified `byte` array starting at offset `off` to this output stream.
` void` ` https://developer.android.com/reference/java/io/FilterOutputStream#write(int)(int b) `

Writes the specified `byte` to this output stream.
From class ` https://developer.android.com/reference/java/io/OutputStream ` ` void` ` https://developer.android.com/reference/java/io/OutputStream#close()() `

Closes this output stream and releases any system resources associated with this stream.
` void` ` https://developer.android.com/reference/java/io/OutputStream#flush()() `

Flushes this output stream and forces any buffered output bytes to be written out.
` static https://developer.android.com/reference/java/io/OutputStream` ` https://developer.android.com/reference/java/io/OutputStream#nullOutputStream()() `

Returns a new `OutputStream` which discards all bytes.
` void` ` https://developer.android.com/reference/java/io/OutputStream#write(byte[])(byte[] b) `

Writes `b.length` bytes from the specified byte array to this output stream.
` void` ` https://developer.android.com/reference/java/io/OutputStream#write(byte[],%20int,%20int)(byte[] b, int off, int len) `

Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.
` abstract void` ` https://developer.android.com/reference/java/io/OutputStream#write(int)(int b) `

Writes the specified byte to this output stream.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/io/Closeable ` ` abstract void` ` https://developer.android.com/reference/java/io/Closeable#close()() `

Closes this stream and releases any system resources associated with it.
From interface ` https://developer.android.com/reference/java/io/Flushable ` ` abstract void` ` https://developer.android.com/reference/java/io/Flushable#flush()() `

Flushes this stream by writing any buffered output to the underlying stream.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Fields

### buf

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected byte[] buf
```

The internal buffer where data is stored.

<br />

### count

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
protected int count
```

The number of valid bytes in the buffer. This value is always in the range `0` through `buf.length`; elements `buf[0]` through `buf[count-1]` contain valid byte data.

<br />

## Public constructors

### BufferedOutputStream

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BufferedOutputStream (OutputStream out)
```

Creates a new buffered output stream to write data to the specified underlying output stream.

<br />

| Parameters ||
|---|---|
| `out` | `OutputStream`: the underlying output stream. <br /> |

### BufferedOutputStream

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public BufferedOutputStream (OutputStream out, 
                int size)
```

Creates a new buffered output stream to write data to the specified underlying output stream with the specified buffer size.

<br />

| Parameters ||
|---|---|
| `out` | `OutputStream`: the underlying output stream. <br /> |
| `size` | `int`: the buffer size. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | if size \<= 0. |

## Public methods

### flush

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void flush ()
```

Flushes this buffered output stream. This forces any buffered output bytes to be written out to the underlying output stream.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs. |

**See also:**

- `https://developer.android.com/reference/java/io/FilterOutputStream#out`

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void write (byte[] b, 
                int off, 
                int len)
```

Writes `len` bytes from the specified byte array starting at offset `off` to this buffered output stream.

Ordinarily this method stores bytes from the given array into this stream's buffer, flushing the buffer to the underlying output stream as needed. If the requested length is at least as large as this stream's buffer, however, then this method will flush the buffer and write the bytes directly to the underlying output stream. Thus redundant `BufferedOutputStream`s will not copy data unnecessarily.

<br />

| Parameters ||
|---|---|
| `b` | `byte`: the data. <br /> |
| `off` | `int`: the start offset in the data. <br /> |
| `len` | `int`: the number of bytes to write. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs. |

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void write (int b)
```

Writes the specified byte to this buffered output stream.

<br />

| Parameters ||
|---|---|
| `b` | `int`: the byte to be written. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs. |