org.apache.lucene.store

## Class RAMDirectory

- java.lang.Object
- - org.apache.lucene.store.Directory
  - - org.apache.lucene.store.RAMDirectory

- All Implemented Interfaces:
    java.io.Serializable

      public class RAMDirectory
      extends Directory
      implements java.io.Serializable

  A memory-resident `Directory` implementation. Locking implementation is by default the `SingleInstanceLockFactory` but can be changed with `Directory.setLockFactory(org.apache.lucene.store.LockFactory)`.
  Version:
    $Id: RAMDirectory.java 886288 2009-12-02 19:43:22Z mikemccand $
  See Also:
    Serialized Form

- - ### Field Summary

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

      `isOpen, lockFactory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RAMDirectory()` Constructs an empty `Directory`.
    `RAMDirectory(Directory dir)` Creates a new `RAMDirectory` instance from a different `Directory` implementation.
    `RAMDirectory(java.io.File dir)` Deprecated. Use `RAMDirectory(Directory)` instead
    `RAMDirectory(java.lang.String dir)` Deprecated. Use `RAMDirectory(Directory)` instead

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the store to future operations, releasing associated memory.
    `IndexOutput` | `createOutput(java.lang.String name)` Creates a new, empty file in the directory with the given name.
    `void` | `deleteFile(java.lang.String name)` Removes an existing file in the directory.
    `boolean` | `fileExists(java.lang.String name)` Returns true iff the named file exists in this directory.
    `long` | `fileLength(java.lang.String name)` Returns the length in bytes of a file in the directory.
    `long` | `fileModified(java.lang.String name)` Returns the time the named file was last modified.
    `java.lang.String[]` | `list()` List the files in the directory.
    `java.lang.String[]` | `listAll()` Returns an array of strings, one for each file in the directory.
    `IndexInput` | `openInput(java.lang.String name)` Returns a stream reading an existing file.
    `void` | `renameFile(java.lang.String from, java.lang.String to)` Deprecated.
    `long` | `sizeInBytes()` Return total size in bytes of all files in this directory.
    `void` | `touchFile(java.lang.String name)` Set the modified time of an existing file to now.

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

      `clearLock, copy, ensureOpen, getLockFactory, getLockID, makeLock, openInput, setLockFactory, sync, toString`

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

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

- - ### Constructor Detail

    - #### RAMDirectory

          public RAMDirectory()

      Constructs an empty `Directory`.

    - #### RAMDirectory

          public RAMDirectory(Directory dir)
                       throws java.io.IOException

      Creates a new `RAMDirectory` instance from a different `Directory` implementation. This can be used to load a disk-based index into memory.

      This should be used only with indices that can fit into memory.

      Note that the resulting `RAMDirectory` instance is fully independent from the original `Directory` (it is a complete copy). Any subsequent changes to the original `Directory` will not be visible in the `RAMDirectory` instance.

      Parameters:
        `dir` - a `Directory` value
      Throws:
        `java.io.IOException` - if an error occurs

    - #### RAMDirectory

          public RAMDirectory(java.io.File dir)
                       throws java.io.IOException

      Deprecated. Use `RAMDirectory(Directory)` instead
      Creates a new `RAMDirectory` instance from the `FSDirectory`.
      Parameters:
        `dir` - a `File` specifying the index directory
      Throws:
        `java.io.IOException`
      See Also:
        `RAMDirectory(Directory)`

    - #### RAMDirectory

          public RAMDirectory(java.lang.String dir)
                       throws java.io.IOException

      Deprecated. Use `RAMDirectory(Directory)` instead
      Creates a new `RAMDirectory` instance from the `FSDirectory`.
      Parameters:
        `dir` - a `String` specifying the full index directory path
      Throws:
        `java.io.IOException`
      See Also:
        `RAMDirectory(Directory)`

  - ### Method Detail

    - #### list

          public final java.lang.String[] list()

      Description copied from class: `Directory`
      List the files in the directory.
      Specified by:
        `list` in class `Directory`

    - #### listAll

          public final java.lang.String[] listAll()

      Description copied from class: `Directory`
      Returns an array of strings, one for each file in the directory. Unlike `Directory.list()` this method does no filtering of the contents in a directory, and it will never return null (throws IOException instead). Currently this method simply falls back to `Directory.list()` for Directory impls outside of Lucene's core & contrib, but in 3.0 that method will be removed and this method will become abstract.
      Overrides:
        `listAll` in class `Directory`

    - #### fileExists

          public final boolean fileExists(java.lang.String name)

      Returns true iff the named file exists in this directory.
      Specified by:
        `fileExists` in class `Directory`

    - #### fileModified

          public final long fileModified(java.lang.String name)
                                  throws java.io.IOException

      Returns the time the named file was last modified.
      Specified by:
        `fileModified` in class `Directory`
      Throws:
        `java.io.IOException` - if the file does not exist

    - #### touchFile

          public void touchFile(java.lang.String name)
                         throws java.io.IOException

      Set the modified time of an existing file to now.
      Specified by:
        `touchFile` in class `Directory`
      Throws:
        `java.io.IOException` - if the file does not exist

    - #### fileLength

          public final long fileLength(java.lang.String name)
                                throws java.io.IOException

      Returns the length in bytes of a file in the directory.
      Specified by:
        `fileLength` in class `Directory`
      Throws:
        `java.io.IOException` - if the file does not exist

    - #### sizeInBytes

          public final long sizeInBytes()

      Return total size in bytes of all files in this directory. This is currently quantized to RAMOutputStream.BUFFER_SIZE.

    - #### deleteFile

          public void deleteFile(java.lang.String name)
                          throws java.io.IOException

      Removes an existing file in the directory.
      Specified by:
        `deleteFile` in class `Directory`
      Throws:
        `java.io.IOException` - if the file does not exist

    - #### renameFile

          public final void renameFile(java.lang.String from,
                                       java.lang.String to)
                                throws java.io.IOException

      Deprecated.
      Renames an existing file in the directory.
      Specified by:
        `renameFile` in class `Directory`
      Throws:
        `java.io.FileNotFoundException` - if from does not exist
        `java.io.IOException`

    - #### createOutput

          public IndexOutput createOutput(java.lang.String name)
                                   throws java.io.IOException

      Creates a new, empty file in the directory with the given name. Returns a stream writing this file.
      Specified by:
        `createOutput` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### openInput

          public IndexInput openInput(java.lang.String name)
                               throws java.io.IOException

      Returns a stream reading an existing file.
      Specified by:
        `openInput` in class `Directory`
      Throws:
        `java.io.IOException`

    - #### close

          public void close()

      Closes the store to future operations, releasing associated memory.
      Specified by:
        `close` in class `Directory`

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