org.apache.cassandra.io.util

## Class UnbufferedDataOutputStreamPlus

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

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

Direct Known Subclasses:
  WrappedDataOutputStreamPlus

    public abstract class UnbufferedDataOutputStreamPlus
    extends DataOutputStreamPlus

Base class for DataOutput implementations that does not have an optimized implementations of Plus methods and does no buffering.

Unlike BufferedDataOutputStreamPlus this is capable of operating as an unbuffered output stream. Currently necessary because SequentialWriter implements its own buffering along with mark/reset/truncate.

### Field Summary

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

`channel`

### Constructor Summary

Constructors
`protected` `UnbufferedDataOutputStreamPlus()`
`protected` `UnbufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel channel)`

### Method Summary

All Methods Static Methods Instance Methods Abstract 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` `write(byte[] buffer)` Writes the entire contents of the byte array `buffer` to this RandomAccessFile starting at the current file pointer.
`abstract void` `write(byte[] buffer, int offset, int count)` Writes `count` bytes from the byte array `buffer` starting at `offset` to this RandomAccessFile starting at the current file pointer..
`void` `write(java.nio.ByteBuffer buf)`
`abstract void` `write(int oneByte)` Writes the specified byte `oneByte` to this RandomAccessFile starting at the current file pointer.
`void` `write(Memory memory, long offset, long length)`
`void` `writeBoolean(boolean val)` Writes a boolean to this output stream.
`void` `writeByte(int val)` Writes a 8-bit byte to this output stream.
`void` `writeBytes(java.lang.String str)` Writes the low order 8-bit bytes from a String to this output stream.
`void` `writeChar(int val)` Writes the specified 16-bit character to the OutputStream.
`void` `writeChars(java.lang.String str)` Writes the specified 16-bit characters contained in str to the OutputStream.
`void` `writeDouble(double val)` Writes a 64-bit double to this output stream.
`void` `writeFloat(float val)` Writes a 32-bit float to this output stream.
`void` `writeInt(int val)` Writes a 32-bit int to this output stream.
`void` `writeLong(long val)` Writes a 64-bit long to this output stream.
`void` `writeShort(int val)` Writes the specified 16-bit short to the OutputStream.
`void` `writeUTF(java.lang.String str)` Writes the specified String out in UTF format.
`static void` `writeUTF(java.lang.String str, java.io.DataOutput out)` Writes the specified String out in UTF format to the provided DataOutput

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

`newDefaultChannel, retrieveTemporaryBuffer`

### Methods inherited from class java.io.OutputStream

`close, flush`

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

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

### Methods inherited from interface org.apache.cassandra.io.util.DataOutputPlus

`hasPosition, position, writeUnsignedVInt, writeVInt`

### Constructor Detail

#### UnbufferedDataOutputStreamPlus

    protected UnbufferedDataOutputStreamPlus()

#### UnbufferedDataOutputStreamPlus

    protected UnbufferedDataOutputStreamPlus(java.nio.channels.WritableByteChannel channel)

### Method Detail

#### write

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

Writes the entire contents of the byte array `buffer` to this RandomAccessFile starting at the current file pointer.

Specified by:
  `write` in interface `java.io.DataOutput`
Overrides:
  `write` in class `java.io.OutputStream`
Parameters:
  `buffer` - the buffer to be written.
Throws:
  `java.io.IOException` - If an error occurs trying to write to this RandomAccessFile.

#### write

    public abstract void write(byte[] buffer,
                               int offset,
                               int count)
                        throws java.io.IOException

Writes `count` bytes from the byte array `buffer` starting at `offset` to this RandomAccessFile starting at the current file pointer..

Specified by:
  `write` in interface `java.io.DataOutput`
Overrides:
  `write` in class `java.io.OutputStream`
Parameters:
  `buffer` - the bytes to be written
  `offset` - offset in buffer to get bytes
  `count` - number of bytes in buffer to write
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this RandomAccessFile.
  `java.lang.IndexOutOfBoundsException` - If offset or count are outside of bounds.

#### write

    public abstract void write(int oneByte)
                        throws java.io.IOException

Writes the specified byte `oneByte` to this RandomAccessFile starting at the current file pointer. Only the low order byte of `oneByte` is written.

Specified by:
  `write` in interface `java.io.DataOutput`
Specified by:
  `write` in class `java.io.OutputStream`
Parameters:
  `oneByte` - the byte to be written
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this RandomAccessFile.

#### writeBoolean

    public final void writeBoolean(boolean val)
                            throws java.io.IOException

Writes a boolean to this output stream.

Parameters:
  `val` - the boolean value to write to the OutputStream
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeByte

    public final void writeByte(int val)
                         throws java.io.IOException

Writes a 8-bit byte to this output stream.

Parameters:
  `val` - the byte value to write to the OutputStream
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeBytes

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

Writes the low order 8-bit bytes from a String to this output stream.

Parameters:
  `str` - the String containing the bytes to write to the OutputStream
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeChar

    public final void writeChar(int val)
                         throws java.io.IOException

Writes the specified 16-bit character to the OutputStream. Only the lower 2 bytes are written with the higher of the 2 bytes written first. This represents the Unicode value of val.

Parameters:
  `val` - the character to be written
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeChars

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

Writes the specified 16-bit characters contained in str to the OutputStream. Only the lower 2 bytes of each character are written with the higher of the 2 bytes written first. This represents the Unicode value of each character in str.

Parameters:
  `str` - the String whose characters are to be written.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeDouble

    public final void writeDouble(double val)
                           throws java.io.IOException

Writes a 64-bit double to this output stream. The resulting output is the 8 bytes resulting from calling Double.doubleToLongBits().

Parameters:
  `val` - the double to be written.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeFloat

    public final void writeFloat(float val)
                          throws java.io.IOException

Writes a 32-bit float to this output stream. The resulting output is the 4 bytes resulting from calling Float.floatToIntBits().

Parameters:
  `val` - the float to be written.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeInt

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

Writes a 32-bit int to this output stream. The resulting output is the 4 bytes, highest order first, of val.

Parameters:
  `val` - the int to be written.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeLong

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

Writes a 64-bit long to this output stream. The resulting output is the 8 bytes, highest order first, of val.

Parameters:
  `val` - the long to be written.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeShort

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

Writes the specified 16-bit short to the OutputStream. Only the lower 2 bytes are written with the higher of the 2 bytes written first.

Parameters:
  `val` - the short to be written
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeUTF

    public static void writeUTF(java.lang.String str,
                                java.io.DataOutput out)
                         throws java.io.IOException

Writes the specified String out in UTF format to the provided DataOutput

Parameters:
  `str` - the String to be written in UTF format.
  `out` - the DataOutput to write the UTF encoded string to
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### writeUTF

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

Writes the specified String out in UTF format.

Parameters:
  `str` - the String to be written in UTF format.
Throws:
  `java.io.IOException` - If an error occurs attempting to write to this DataOutputStream.

#### write

    public void write(java.nio.ByteBuffer buf)
               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`

#### 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`