org.apache.lucene.store

## Class SimpleFSDirectory

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - org.apache.lucene.store.FSDirectory
    - - org.apache.lucene.store.SimpleFSDirectory

- All Implemented Interfaces:
    Closeable, AutoCloseable

      public class SimpleFSDirectory
      extends FSDirectory

  A straightforward implementation of `FSDirectory` using java.io.RandomAccessFile. However, this class has poor concurrent performance (multiple threads will bottleneck) as it synchronizes when multiple threads read from the same file. It's usually better to use `NIOFSDirectory` or `MMapDirectory` instead.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `SimpleFSDirectory.SimpleFSIndexInput` Reads bytes with `RandomAccessFile.seek(long)` followed by `RandomAccessFile.read(byte[], int, int)`.

    - ### Nested classes/interfaces inherited from class org.apache.lucene.store.FSDirectory

      `FSDirectory.FSIndexInput, FSDirectory.FSIndexOutput`

    - ### Nested classes/interfaces inherited from class org.apache.lucene.store.Directory

      `Directory.IndexInputSlicer`

  - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.store.FSDirectory

      `DEFAULT_READ_CHUNK_SIZE, directory, staleFiles`

    - ### Fields inherited from class org.apache.lucene.store.Directory

      `isOpen, lockFactory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleFSDirectory(File path)` Create a new SimpleFSDirectory for the named location and `NativeFSLockFactory`.
    `SimpleFSDirectory(File path, LockFactory lockFactory)` Create a new SimpleFSDirectory for the named location.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Directory.IndexInputSlicer` | `createSlicer(String name, IOContext context)` Creates an `Directory.IndexInputSlicer` for the given file name.
    `IndexInput` | `openInput(String name, IOContext context)` Creates an IndexInput for the file with the given name.

    - ### Methods inherited from class org.apache.lucene.store.FSDirectory

      `close, createOutput, deleteFile, ensureCanWrite, fileExists, fileLength, fileModified, fsync, getDirectory, getLockID, getReadChunkSize, listAll, listAll, onIndexOutputClosed, open, open, setLockFactory, setReadChunkSize, sync, toString`

    - ### Methods inherited from class org.apache.lucene.store.Directory

      `clearLock, copy, ensureOpen, getLockFactory, makeLock`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SimpleFSDirectory

          public SimpleFSDirectory(File path,
                           LockFactory lockFactory)
                            throws IOException

      Create a new SimpleFSDirectory for the named location.
      Parameters:
        `path` - the path of the directory
        `lockFactory` - the lock factory to use, or null for the default (`NativeFSLockFactory`);
      Throws:
        `IOException` - if there is a low-level I/O error

    - #### SimpleFSDirectory

          public SimpleFSDirectory(File path)
                            throws IOException

      Create a new SimpleFSDirectory for the named location and `NativeFSLockFactory`.
      Parameters:
        `path` - the path of the directory
      Throws:
        `IOException` - if there is a low-level I/O error

  - ### Method Detail

    - #### openInput

          public IndexInput openInput(String name,
                             IOContext context)
                               throws IOException

      Creates an IndexInput for the file with the given name.
      Specified by:
        `openInput` in class `Directory`
      Throws:
        `IOException`

    - #### createSlicer

          public Directory.IndexInputSlicer createSlicer(String name,
                                                IOContext context)
                                                  throws IOException

      Description copied from class: `Directory`
      Creates an `Directory.IndexInputSlicer` for the given file name. IndexInputSlicer allows other `Directory` implementations to efficiently open one or more sliced `IndexInput` instances from a single file handle. The underlying file handle is kept open until the `Directory.IndexInputSlicer` is closed.
      Overrides:
        `createSlicer` in class `Directory`
      Throws:
        `IOException` - if an `IOException` occurs

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.