# Package org.apache.lucene.store

package org.apache.lucene.store
Binary i/o API, used for all index data.

- Class
  Description
  AlreadyClosedException
  This exception is thrown when there is an attempt to access something that has already been closed.
  BaseDirectory
  Base implementation for a concrete `Directory` that uses a `LockFactory` for locking.
  BufferedChecksum
  Wraps another `Checksum` with an internal buffer to speed up checksum calculations.
  BufferedChecksumIndexInput
  Simple implementation of `ChecksumIndexInput` that wraps another input and delegates calls.
  BufferedIndexInput
  Base implementation class for buffered `IndexInput`.
  ByteArrayDataInput
  DataInput backed by a byte array.
  ByteArrayDataOutput
  DataOutput backed by a byte array.
  ByteBuffersDataInput
  A `DataInput` implementing `RandomAccessInput` and reading data from a list of `ByteBuffer`s.
  ByteBuffersDataOutput
  A `DataOutput` storing data in a list of `ByteBuffer`s.
  ByteBuffersDataOutput.ByteBufferRecycler
  An implementation of a `ByteBuffer` allocation and recycling policy.
  ByteBuffersDirectory
  A `ByteBuffer`-based `Directory` implementation that can be used to store index files on the heap.
  ByteBuffersIndexInput
  An `IndexInput` implementing `RandomAccessInput` and backed by a `ByteBuffersDataInput`.
  ByteBuffersIndexOutput
  An `IndexOutput` writing to a `ByteBuffersDataOutput`.
  ChecksumIndexInput
  Extension of IndexInput, computing checksum as it goes.
  DataAccessHint
  Hint on the data access pattern likely to be used
  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` provides an abstraction layer for storing a list of files.
  FileDataHint
  Hints on the type of data stored in the file
  FileSwitchDirectory
  Expert: A Directory instance that switches files between two other Directory instances.
  FileTypeHint
  Hints on the type of file being opened.
  FilterDirectory
  Directory implementation that delegates calls to another directory.
  FilterIndexInput
  IndexInput implementation that delegates calls to another directory.
  FilterIndexOutput
  IndexOutput implementation that delegates calls to another directory.
  FlushInfo
  A FlushInfo provides information required for a FLUSH context.
  FSDirectory
  Base class for Directory implementations that store index files in the file system.
  FSLockFactory
  Base class for file system based locking implementation.
  IndexInput
  Abstract base class for input from a file in a `Directory`.
  IndexOutput
  A `DataOutput` for appending data to a file in a `Directory`.
  InputStreamDataInput
  A `DataInput` wrapping a plain `InputStream`.
  IOContext
  IOContext holds additional details on the merge/search context.
  IOContext.Context
  Context is an enumerator which specifies the context in which the Directory is being used.
  IOContext.FileOpenHint
  Implemented by classes that can specify hints on how the file will be used
  Lock
  An interprocess mutex lock.
  LockFactory
  Base class for Locking implementation.
  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.
  LockStressTest
  Simple standalone tool that forever acquires and releases a lock using a specific `LockFactory`.
  LockValidatingDirectoryWrapper
  This class makes a best-effort check that a provided `Lock` is valid before any destructive filesystem operation.
  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.
  NoLockFactory
  Use this `LockFactory` to disable locking entirely.
  NRTCachingDirectory
  Wraps a RAM-resident directory around any provided delegate directory, to be used during NRT search.
  OutputStreamDataOutput
  A `DataOutput` wrapping a plain `OutputStream`.
  OutputStreamIndexOutput
  Implementation class for buffered `IndexOutput` that writes to an `OutputStream`.
  PreloadHint
  A hint that the file should be preloaded into memory
  RandomAccessInput
  Random Access Index API.
  RateLimitedIndexOutput
  A `rate limiting` `IndexOutput`
  RateLimiter
  Abstract base class to rate limit IO.
  RateLimiter.SimpleRateLimiter
  Simple class to rate limit IO.
  ReadAdvice
  Advice regarding the read access pattern.
  ReadOnceHint
  A `IOContext.FileOpenHint` indicating the file will only be read once, sequentially
  SimpleFSLockFactory
  Implements `LockFactory` using `Files.createFile(java.nio.file.Path, java.nio.file.attribute.FileAttribute<?>...)`.
  SingleInstanceLockFactory
  Implements `LockFactory` for a single in-process instance, meaning all locking will take place through this one instance.
  SleepingLockWrapper
  Directory that wraps another, and that sleeps and retries if obtaining the lock fails.
  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).