## org.apache.lucene.store
Class RAMDirectory

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

All Implemented Interfaces:
  Serializable

    public class RAMDirectory

extends Directory
implements 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 581625 2007-10-03 15:24:12Z mikemccand $
See Also:
  Serialized Form

Field Summary

Fields inherited from class org.apache.lucene.store.Directory
`lockFactory`

Constructor Summary
`RAMDirectory()` Constructs an empty `Directory`.
`RAMDirectory(Directory dir)` Creates a new `RAMDirectory` instance from a different `Directory` implementation.
`RAMDirectory(File dir)` Creates a new `RAMDirectory` instance from the `FSDirectory`.
`RAMDirectory(String dir)` Creates a new `RAMDirectory` instance from the `FSDirectory`.

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

Methods inherited from class org.apache.lucene.store.Directory
`clearLock, copy, getLockFactory, getLockID, makeLock, openInput, setLockFactory`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RAMDirectory

    public RAMDirectory()

  Constructs an empty `Directory`.

### RAMDirectory

    public RAMDirectory(Directory dir)
                 throws 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:
    `IOException` - if an error occurs

### RAMDirectory

    public RAMDirectory(File dir)
                 throws IOException

  Creates a new `RAMDirectory` instance from the `FSDirectory`.

  Parameters:
    `dir` - a `File` specifying the index directory
  Throws:
    `IOException`
  See Also:
    `RAMDirectory(Directory)`

### RAMDirectory

    public RAMDirectory(String dir)
                 throws IOException

  Creates a new `RAMDirectory` instance from the `FSDirectory`.

  Parameters:
    `dir` - a `String` specifying the full index directory path
  Throws:
    `IOException`
  See Also:
    `RAMDirectory(Directory)`

Method Detail

### list

    public final String[] list()

  Returns an array of strings, one for each file in the directory.

  Specified by:
    `list` in class `Directory`

### fileExists

    public final boolean fileExists(String name)

  Returns true iff the named file exists in this directory.

  Specified by:
    `fileExists` in class `Directory`

### fileModified

    public final long fileModified(String name)
                            throws IOException

  Returns the time the named file was last modified.

  Specified by:
    `fileModified` in class `Directory`
  Throws:
    `IOException` - if the file does not exist

### touchFile

    public void touchFile(String name)
                   throws IOException

  Set the modified time of an existing file to now.

  Specified by:
    `touchFile` in class `Directory`
  Throws:
    `IOException` - if the file does not exist

### fileLength

    public final long fileLength(String name)
                          throws IOException

  Returns the length in bytes of a file in the directory.

  Specified by:
    `fileLength` in class `Directory`
  Throws:
    `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(String name)
                    throws IOException

  Removes an existing file in the directory.

  Specified by:
    `deleteFile` in class `Directory`
  Throws:
    `IOException` - if the file does not exist

### renameFile

    public final void renameFile(String from,
                                 String to)
                          throws IOException

  Deprecated.

  Renames an existing file in the directory.

  Specified by:
    `renameFile` in class `Directory`
  Throws:
    `FileNotFoundException` - if from does not exist
    `IOException`

### createOutput

    public IndexOutput createOutput(String name)
                             throws 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:
    `IOException`

### openInput

    public IndexInput openInput(String name)
                         throws IOException

  Returns a stream reading an existing file.

  Specified by:
    `openInput` in class `Directory`
  Throws:
    `IOException`

### close

    public void close()

  Closes the store to future operations, releasing associated memory.

  Specified by:
    `close` in class `Directory`

### ensureOpen

    protected final void ensureOpen()
                             throws AlreadyClosedException

  Throws:
    `AlreadyClosedException` - if this IndexReader is closed

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