org.apache.lucene.store

Class RAMDirectory

public class RAMDirectory extends Directory implements Serializable

A memory-resident Directory implementation. Locking implementation is by default the SingleInstanceLockFactory but can be changed with RAMDirectory.

Version: $Id: RAMDirectory.java 542561 2007-05-29 15:14:07Z mikemccand $

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
voidclose()
Closes the store to future operations, releasing associated memory.
IndexOutputcreateOutput(String name)
Creates a new, empty file in the directory with the given name.
voiddeleteFile(String name)
Removes an existing file in the directory.
protected voidensureOpen()
booleanfileExists(String name)
Returns true iff the named file exists in this directory.
longfileLength(String name)
Returns the length in bytes of a file in the directory.
longfileModified(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.
IndexInputopenInput(String name)
Returns a stream reading an existing file.
voidrenameFile(String from, String to)
Renames an existing file in the directory.
longsizeInBytes()
Return total size in bytes of all files in this directory.
voidtouchFile(String name)
Set the modified time of an existing file to now.

Constructor Detail

RAMDirectory

public RAMDirectory()
Constructs an empty Directory.

RAMDirectory

public RAMDirectory(Directory dir)
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)
Creates a new RAMDirectory instance from the FSDirectory.

Parameters: dir a File specifying the index directory

See Also: RAMDirectory

RAMDirectory

public RAMDirectory(String dir)
Creates a new RAMDirectory instance from the FSDirectory.

Parameters: dir a String specifying the full index directory path

See Also: RAMDirectory

Method Detail

close

public void close()
Closes the store to future operations, releasing associated memory.

createOutput

public IndexOutput createOutput(String name)
Creates a new, empty file in the directory with the given name. Returns a stream writing this file.

deleteFile

public void deleteFile(String name)
Removes an existing file in the directory.

Throws: IOException if the file does not exist

ensureOpen

protected final void ensureOpen()

Throws: AlreadyClosedException if this IndexReader is closed

fileExists

public final boolean fileExists(String name)
Returns true iff the named file exists in this directory.

fileLength

public final long fileLength(String name)
Returns the length in bytes of a file in the directory.

Throws: IOException if the file does not exist

fileModified

public final long fileModified(String name)
Returns the time the named file was last modified.

Throws: IOException if the file does not exist

list

public final String[] list()
Returns an array of strings, one for each file in the directory.

openInput

public IndexInput openInput(String name)
Returns a stream reading an existing file.

renameFile

public final void renameFile(String from, String to)

Deprecated:

Renames an existing file in the directory.

Throws: FileNotFoundException if from 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.

touchFile

public void touchFile(String name)
Set the modified time of an existing file to now.

Throws: IOException if the file does not exist

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