org.apache.cassandra.io.util

## Class NIODataInputStream

- java.lang.Object
- - java.io.InputStream
  - - org.apache.cassandra.io.util.NIODataInputStream

All Implemented Interfaces:
  java.io.Closeable, java.io.DataInput, java.lang.AutoCloseable

    public class NIODataInputStream
    extends java.io.InputStream
    implements java.io.DataInput, java.io.Closeable

Rough equivalent of BufferedInputStream and DataInputStream wrapping the input stream of a File or Socket Created to work around the fact that when BIS + DIS delegate to NIO for socket IO they will allocate large thread local direct byte buffers when a large array is used to read. There may also be some performance improvement due to using a DBB as the underlying buffer for IO and the removal of some indirection and delegation when it comes to reading out individual values, but that is not the goal. Closing NIODataInputStream will invoke close on the ReadableByteChannel provided at construction. NIODataInputStream is not thread safe.

### Constructor Summary

Constructors
Constructor and Description
`NIODataInputStream(java.nio.channels.ReadableByteChannel rbc, int bufferSize)`

### Method Summary

All Methods Instance Methods Concrete Methods
`int` `available()`
`void` `close()`
`boolean` `markSupported()`
`int` `read()`
`int` `read(byte[] b, int off, int len)`
`boolean` `readBoolean()`
`byte` `readByte()`
`char` `readChar()`
`double` `readDouble()`
`float` `readFloat()`
`void` `readFully(byte[] b)`
`void` `readFully(byte[] b, int off, int len)`
`int` `readInt()`
`java.lang.String` `readLine()`
`long` `readLong()`
`short` `readShort()`
`int` `readUnsignedByte()`
`int` `readUnsignedShort()`
`java.lang.String` `readUTF()`
`void` `reset()`
`int` `skipBytes(int n)`

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

`mark, read, skip`

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

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

### Constructor Detail

#### NIODataInputStream

    public NIODataInputStream(java.nio.channels.ReadableByteChannel rbc,
                              int bufferSize)

### Method Detail

#### readFully

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

Specified by:
  `readFully` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readFully

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

Specified by:
  `readFully` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### read

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

Overrides:
  `read` in class `java.io.InputStream`
Throws:
  `java.io.IOException`

#### skipBytes

    public int skipBytes(int n)
                  throws java.io.IOException

Specified by:
  `skipBytes` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readBoolean

    public boolean readBoolean()
                        throws java.io.IOException

Specified by:
  `readBoolean` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readByte

    public byte readByte()
                  throws java.io.IOException

Specified by:
  `readByte` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readUnsignedByte

    public int readUnsignedByte()
                         throws java.io.IOException

Specified by:
  `readUnsignedByte` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readShort

    public short readShort()
                    throws java.io.IOException

Specified by:
  `readShort` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readUnsignedShort

    public int readUnsignedShort()
                          throws java.io.IOException

Specified by:
  `readUnsignedShort` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readChar

    public char readChar()
                  throws java.io.IOException

Specified by:
  `readChar` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readInt

    public int readInt()
                throws java.io.IOException

Specified by:
  `readInt` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readLong

    public long readLong()
                  throws java.io.IOException

Specified by:
  `readLong` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readFloat

    public float readFloat()
                    throws java.io.IOException

Specified by:
  `readFloat` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readDouble

    public double readDouble()
                      throws java.io.IOException

Specified by:
  `readDouble` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readLine

    public java.lang.String readLine()
                              throws java.io.IOException

Specified by:
  `readLine` in interface `java.io.DataInput`
Throws:
  `java.io.IOException`

#### readUTF

    public java.lang.String readUTF()
                             throws java.io.IOException

Specified by:
  `readUTF` in interface `java.io.DataInput`
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.InputStream`
Throws:
  `java.io.IOException`

#### read

    public int read()
             throws java.io.IOException

Specified by:
  `read` in class `java.io.InputStream`
Throws:
  `java.io.IOException`

#### available

    public int available()
                  throws java.io.IOException

Overrides:
  `available` in class `java.io.InputStream`
Throws:
  `java.io.IOException`

#### reset

    public void reset()
               throws java.io.IOException

Overrides:
  `reset` in class `java.io.InputStream`
Throws:
  `java.io.IOException`

#### markSupported

    public boolean markSupported()

Overrides:
  `markSupported` in class `java.io.InputStream`