org.apache.cassandra.io.util

## Class BufferedDataOutputStreamPlus

- java.lang.Object
- - java.io.OutputStream
  - - org.apache.cassandra.io.util.DataOutputStreamPlus
    - - org.apache.cassandra.io.util.BufferedDataOutputStreamPlus

All Implemented Interfaces:
  java.io.Closeable, java.io.DataOutput, java.io.Flushable, java.lang.AutoCloseable, DataOutputPlus

Direct Known Subclasses:
  DataOutputBuffer

    public class BufferedDataOutputStreamPlus
    extends DataOutputStreamPlus

An implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel. This class is completely thread unsafe.

### Field Summary

### Fields inherited from class org.apache.cassandra.io.util.DataOutputStreamPlus

`channel`

### Constructor Summary

Constructors
`protected` `BufferedDataOutputStreamPlus(java.nio.ByteBuffer buffer)`
`` `BufferedDataOutputStreamPlus(java.io.FileOutputStream fos)`
`` `BufferedDataOutputStreamPlus(java.io.FileOutputStream fos, int bufferSize)`
`` `BufferedDataOutputStreamPlus(java.io.RandomAccessFile ras)`
`` `BufferedDataOutputStreamPlus(java.io.RandomAccessFile ras, int bufferSize)`
`` `BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel wbc)`
`protected` `BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel channel, java.nio.ByteBuffer buffer)`
`` `BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel wbc, int bufferSize)`

### Method Summary

All Methods Instance Methods Concrete Methods
`<R> R` `applyToChannel(com.google.common.base.Function<java.nio.channels.WritableByteChannel,R> f)` Safe way to operate against the underlying channel.
`void` `close()`
`protected void` `doFlush(int count)`
`protected void` `ensureRemaining(int minimum)`
`void` `flush()`
`BufferedDataOutputStreamPlus` `order(java.nio.ByteOrder order)`
`void` `write(byte[] b)`
`void` `write(byte[] b, int off, int len)`
`void` `write(java.nio.ByteBuffer toWrite)`
`void` `write(int b)`
`void` `write(Memory memory, long offset, long length)`
`void` `writeBoolean(boolean v)`
`void` `writeByte(int v)`
`void` `writeBytes(java.lang.String s)`
`void` `writeChar(int v)`
`void` `writeChars(java.lang.String s)`
`void` `writeDouble(double v)`
`void` `writeFloat(float v)`
`void` `writeInt(int v)`
`void` `writeLong(long v)`
`void` `writeShort(int v)`
`void` `writeUTF(java.lang.String s)`

### Methods inherited from class org.apache.cassandra.io.util.DataOutputStreamPlus

`newDefaultChannel, retrieveTemporaryBuffer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.io.RandomAccessFile ras)

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.io.RandomAccessFile ras,
                                        int bufferSize)

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.io.FileOutputStream fos)

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.io.FileOutputStream fos,
                                        int bufferSize)

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel wbc)

#### BufferedDataOutputStreamPlus

    public BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel wbc,
                                        int bufferSize)

#### BufferedDataOutputStreamPlus

    protected BufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel channel,
                                           java.nio.ByteBuffer buffer)

#### BufferedDataOutputStreamPlus

    protected BufferedDataOutputStreamPlus(java.nio.ByteBuffer buffer)

### Method Detail

#### write

    public void write(byte[] b)
               throws java.io.IOException

Specified by:
  `write` in interface `java.io.DataOutput`
Overrides:
  `write` in class `java.io.OutputStream`
Throws:
  `java.io.IOException`

#### write

    public void write(byte[] b,
                      int off,
                      int len)
               throws java.io.IOException

Specified by:
  `write` in interface `java.io.DataOutput`
Overrides:
  `write` in class `java.io.OutputStream`
Throws:
  `java.io.IOException`

#### write

    public void write(java.nio.ByteBuffer toWrite)
               throws java.io.IOException

Throws:
  `java.io.IOException`

#### write

    public void write(int b)
               throws java.io.IOException

Specified by:
  `write` in interface `java.io.DataOutput`
Specified by:
  `write` in class `java.io.OutputStream`
Throws:
  `java.io.IOException`

#### writeBoolean

    public void writeBoolean(boolean v)
                      throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeByte

    public void writeByte(int v)
                   throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeShort

    public void writeShort(int v)
                    throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeChar

    public void writeChar(int v)
                   throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeInt

    public void writeInt(int v)
                  throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeLong

    public void writeLong(long v)
                   throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeFloat

    public void writeFloat(float v)
                    throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeDouble

    public void writeDouble(double v)
                     throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeBytes

    public void writeBytes(java.lang.String s)
                    throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeChars

    public void writeChars(java.lang.String s)
                    throws java.io.IOException

Throws:
  `java.io.IOException`

#### writeUTF

    public void writeUTF(java.lang.String s)
                  throws java.io.IOException

Throws:
  `java.io.IOException`

#### write

    public void write(Memory memory,
                      long offset,
                      long length)
               throws java.io.IOException

Throws:
  `java.io.IOException`

#### doFlush

    protected void doFlush(int count)
                    throws java.io.IOException

Throws:
  `java.io.IOException`

#### flush

    public void flush()
               throws java.io.IOException

Specified by:
  `flush` in interface `java.io.Flushable`
Overrides:
  `flush` in class `java.io.OutputStream`
Throws:
  `java.io.IOException`

#### close

    public void close()
               throws java.io.IOException

Specified by:
  `close` in interface `java.io.Closeable`
Specified by:
  `close` in interface `java.lang.AutoCloseable`
Overrides:
  `close` in class `java.io.OutputStream`
Throws:
  `java.io.IOException`

#### ensureRemaining

    protected void ensureRemaining(int minimum)
                            throws java.io.IOException

Throws:
  `java.io.IOException`

#### applyToChannel

    public <R> R applyToChannel(com.google.common.base.Function<java.nio.channels.WritableByteChannel,R> f)
                         throws java.io.IOException

Description copied from interface: `DataOutputPlus`
Safe way to operate against the underlying channel. Impossible to stash a reference to the channel and forget to flush

Throws:
  `java.io.IOException`

#### order

    public BufferedDataOutputStreamPlus order(java.nio.ByteOrder order)