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
`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
`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