# Package org.apache.cassandra.io.util

- Interface Summary
  Interface | Description
  --- | ---
  BytesReadTracker |
  ChunkReader | RandomFileReader component that reads data from a file into a provided buffer and may have requirements over the size and alignment of reads.
  DataInputPlus | Extension to DataInput that provides support for reading varints
  DataOutputPlus | Extension to DataOutput that provides for writing ByteBuffer and Memory, potentially with an efficient implementation that is zero copy or at least has reduced bounds checking overhead.
  DataPosition |
  DiskOptimizationStrategy |
  FileDataInput |
  ReaderFileProxy | Base class for the RandomAccessReader components that implement reading.
  Rebufferer | Rebufferer for reading data by a RandomAccessReader.
  Rebufferer.BufferHolder |
  RebuffererFactory | Interface for the classes that can be used to instantiate rebufferers over a given file.
  RewindableDataInput |

- Class Summary
  Class | Description
  --- | ---
  AbstractReaderFileProxy |
  BufferedDataOutputStreamPlus | An implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.
  BufferManagingRebufferer | Buffer manager used for reading from a ChunkReader when cache is not in use.
  BufferManagingRebufferer.Aligned |
  BufferManagingRebufferer.Unaligned |
  ChannelProxy | A proxy of a FileChannel that: - implements reference counting - exports only thread safe FileChannel operations - wraps IO exceptions into runtime exceptions Tested by RandomAccessReaderTest.
  ChecksummedRandomAccessReader |
  ChecksummedSequentialWriter |
  ChecksumWriter |
  CompressedChunkReader |
  CompressedChunkReader.Mmap |
  CompressedChunkReader.Standard |
  DataInputBuffer | Input stream around a single ByteBuffer.
  DataInputPlus.DataInputStreamPlus | Wrapper around an InputStream that provides no buffering but can decode varints
  DataIntegrityMetadata |
  DataIntegrityMetadata.ChecksumValidator |
  DataIntegrityMetadata.FileDigestValidator |
  DataOutputBuffer | An implementation of the DataOutputStream interface using a FastByteArrayOutputStream and exposing its buffer so copies can be avoided.
  DataOutputBufferFixed | An implementation of the DataOutputStream interface using a FastByteArrayOutputStream and exposing its buffer so copies can be avoided.
  DataOutputStreamPlus | Abstract base class for DataOutputStreams that accept writes from ByteBuffer or Memory and also provide access to the underlying WritableByteChannel associated with their output stream.
  FastByteArrayInputStream | A specialized `InputStream` for reading the contents of a byte array.
  FileHandle | `FileHandle` provides access to a file for reading, including the ones written by various `SequentialWriter` instances, and it is typically used by `SSTableReader`.
  FileHandle.Builder | Configures how the file will be read (compressed, mmapped, use cache etc.)
  FileSegmentInputStream | This is the same as DataInputBuffer, i.e.
  FileUtils |
  LengthAvailableInputStream | a FilterInputStream that returns the remaining bytes to read from available() regardless of whether the device is ready to provide them.
  LimitingRebufferer | Rebufferer wrapper that applies rate limiting.
  Memory | An off-heap region of memory that must be manually free'd when no longer needed.
  MemoryInputStream |
  MemoryOutputStream | This class provides a way to stream the writes into the `Memory`
  MmappedRegions |
  MmappedRegions.Region |
  MmappedRegions.Tidier |
  NIODataInputStream | 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.
  RandomAccessReader |
  RebufferingInputStream | Rough equivalent of BufferedInputStream and DataInputStream wrapping a ByteBuffer that can be refilled via rebuffer.
  RewindableDataInputStreamPlus | Adds mark/reset functionality to another input stream by caching read bytes to a memory buffer and spilling to disk if necessary.
  RewindableDataInputStreamPlus.RewindableDataInputPlusMark |
  SafeMemory |
  SafeMemoryWriter |
  SequentialWriter | Adds buffering, mark, and fsyncing to OutputStream.
  SequentialWriter.BufferedFileWriterMark | Class to hold a mark to the position of the file
  SequentialWriterOption | SequentialWriter option
  SequentialWriterOption.Builder |
  SpinningDiskOptimizationStrategy |
  SsdDiskOptimizationStrategy |
  TrackedDataInputPlus | This class is to track bytes read from given DataInput
  TrackedInputStream | This class is to track bytes read from given DataInputStream
  UnbufferedDataOutputStreamPlus | Base class for DataOutput implementations that does not have an optimized implementations of Plus methods and does no buffering.
  WrappedDataOutputStreamPlus | When possible use `WrappedDataOutputStreamPlus` instead of this class, as it will be more efficient when using Plus methods.

- Exception Summary
  Exception | Description
  --- | ---
  CorruptFileException |

Copyright © 2018 The Apache Software Foundation