## 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
`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
`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-2011 Apache Software Foundation. All Rights Reserved.