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
    Modifier and Type | Method and Description
    --- | ---
    `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`

Copyright © 2018 The Apache Software Foundation