# Package org.apache.cassandra.io.util

Interface Summary
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.
FileDataInput
FileMark
ICompressedFile

Class Summary
AbstractDataInput
BufferedDataOutputStreamPlus: An implementation of the DataOutputStreamPlus interface using a ByteBuffer to stage writes before flushing them to an underlying channel.
BufferedPoolingSegmentedFile
BufferedPoolingSegmentedFile.Builder
BufferedSegmentedFile
BufferedSegmentedFile.Builder
ByteBufferDataInput
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
CompressedPoolingSegmentedFile
CompressedPoolingSegmentedFile.Builder
CompressedPoolingSegmentedFile.Cleanup
CompressedSegmentedFile
CompressedSegmentedFile.Builder
DataIntegrityMetadata
DataIntegrityMetadata.ChecksumValidator
DataIntegrityMetadata.ChecksumWriter
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.
FileUtils
LengthAvailableInputStream: a FilterInputStream that returns the remaining bytes to read from available() regardless of whether the device is ready to provide them.
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`
MmappedSegmentedFile
MmappedSegmentedFile.Builder: Overrides the default behaviour to create segments of a maximum size.
MmappedSegmentedFile.Builder.Boundaries
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.
PoolingSegmentedFile
PoolingSegmentedFile.Cleanup
RandomAccessReader
RandomAccessReader.BufferedRandomAccessFileMark: Class to hold a mark to the position of the file
SafeMemory
SafeMemoryWriter
SegmentedFile: Abstracts a read-only file that has been split into segments, each of which can be represented by an independent FileDataInput.
SegmentedFile.Builder: Collects potential segmentation points in an underlying file, and builds a SegmentedFile to represent it.
SegmentedFile.Cleanup
SequentialWriter: Adds buffering, mark, and fsyncing to OutputStream.
SequentialWriter.BufferedFileWriterMark: Class to hold a mark to the position of the file
ThrottledReader
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
ChecksummedRandomAccessReader.CorruptFileException