# Package org.apache.lucene.store

Binary i/o API, used for all index data.

See: Description

Class Summary
Class | Description
--- | ---
BufferedIndexInput | Base implementation class for buffered `IndexInput`.
BufferedIndexOutput | Base implementation class for buffered `IndexOutput`.
ByteArrayDataInput | DataInput backed by a byte array.
ByteArrayDataOutput | DataOutput backed by a byte array.
ChecksumIndexInput | Reads bytes through to a primary IndexInput, computing checksum as it goes.
ChecksumIndexOutput | Writes bytes through to a primary IndexOutput, computing checksum.
CompoundFileDirectory | Class for accessing a compound stream.
CompoundFileDirectory.FileEntry | Offset/Length for a slice inside of a compound file
DataInput | Abstract base class for performing read operations of Lucene's low-level data types.
DataOutput | Abstract base class for performing write operations of Lucene's low-level data types.
Directory | A Directory is a flat list of files.
FileSwitchDirectory | Expert: A Directory instance that switches files between two other Directory instances.
FlushInfo | A FlushInfo provides information required for a FLUSH context.
FSDirectory | Base class for Directory implementations that store index files in the file system.
FSDirectory.FSIndexInput | Base class for reading input from a RandomAccessFile
FSDirectory.FSIndexOutput | Writes output with `RandomAccessFile.write(byte[], int, int)`
FSLockFactory | Base class for file system based locking implementation.
IndexInput | Abstract base class for input from a file in a `Directory`.
IndexOutput | Abstract base class for output to a file in a Directory.
InputStreamDataInput | A `DataInput` wrapping a plain `InputStream`.
IOContext | IOContext holds additional details on the merge/search context.
Lock | An interprocess mutex lock.
Lock.With | Utility class for executing code with exclusive access.
LockFactory | Base class for Locking implementation.
LockStressTest | Simple standalone tool that forever acquires & releases a lock using a specific LockFactory.
LockVerifyServer | Simple standalone server that must be running when you use `VerifyingLockFactory`.
MergeInfo | A MergeInfo provides information required for a MERGE context.
MMapDirectory | File-based `Directory` implementation that uses mmap for reading, and `FSDirectory.FSIndexOutput` for writing.
NativeFSLockFactory | Implements `LockFactory` using native OS file locks.
NIOFSDirectory | An `FSDirectory` implementation that uses java.nio's FileChannel's positional read, which allows multiple threads to read from the same file without synchronizing.
NIOFSDirectory.NIOFSIndexInput | Reads bytes with `FileChannel.read(ByteBuffer, long)`
NoLockFactory | Use this `LockFactory` to disable locking entirely.
NRTCachingDirectory | Wraps a `RAMDirectory` around any provided delegate directory, to be used during NRT search.
OutputStreamDataOutput | A `DataOutput` wrapping a plain `OutputStream`.
RAMDirectory | A memory-resident `Directory` implementation.
RAMFile | Represents a file in RAM as a list of byte[] buffers.
RAMInputStream | A memory-resident `IndexInput` implementation.
RAMOutputStream | A memory-resident `IndexOutput` implementation.
RateLimitedDirectoryWrapper | A `Directory` wrapper that allows `IndexOutput` rate limiting using `IO context` specific `rate limiters`.
RateLimiter | Abstract base class to rate limit IO.
RateLimiter.SimpleRateLimiter | Simple class to rate limit IO.
SimpleFSDirectory | A straightforward implementation of `FSDirectory` using java.io.RandomAccessFile.
SimpleFSDirectory.SimpleFSIndexInput | Reads bytes with `RandomAccessFile.seek(long)` followed by `RandomAccessFile.read(byte[], int, int)`.
SimpleFSLockFactory | Implements `LockFactory` using `File.createNewFile()`.
SingleInstanceLockFactory | Implements `LockFactory` for a single in-process instance, meaning all locking will take place through this one instance.
TrackingDirectoryWrapper | A delegating Directory that records which files were written to and deleted.
VerifyingLockFactory | A `LockFactory` that wraps another `LockFactory` and verifies that each lock obtain/release is "correct" (never results in two processes holding the lock at the same time).

Enum Summary
Enum | Description
--- | ---
IOContext.Context | Context is a enumerator which specifies the context in which the Directory is being used for.

Exception Summary
Exception | Description
--- | ---
AlreadyClosedException | This exception is thrown when there is an attempt to access something that has already been closed.
LockObtainFailedException | This exception is thrown when the `write.lock` could not be acquired.
LockReleaseFailedException | This exception is thrown when the `write.lock` could not be released.
NoSuchDirectoryException | This exception is thrown when you try to list a non-existent directory.

## Package org.apache.lucene.store Description

Binary i/o API, used for all index data.