## org.apache.lucene.store
Class IndexInput

    java.lang.Object
      org.apache.lucene.store.DataInput
          org.apache.lucene.store.IndexInput

All Implemented Interfaces:
  Closeable, Cloneable

Direct Known Subclasses:
  BufferedIndexInput, ChecksumIndexInput, RAMInputStream

    public abstract class IndexInput

extends DataInput
implements Cloneable, Closeable

Abstract base class for input from a file in a `Directory`. A random-access input stream. Used for all Lucene index input operations.

`IndexInput` may only be used from one thread, because it is not thread safe (it keeps internal state like file position). To allow multithreaded use, every `IndexInput` instance must be cloned before used in another thread. Subclasses must therefore implement `clone()`, returning a new `IndexInput` which operates on the same underlying resource, but positioned independently. Lucene never closes cloned `IndexInput`s, it will only do this on the original one. The original instance must take care that cloned instances throw `AlreadyClosedException` when the original one is closed.

See Also:
  `Directory`

Constructor Summary
`protected` `IndexInput(String resourceDescription)` resourceDescription should be a non-null, opaque string describing this resource; it's returned from `toString()`.

Method Summary
`IndexInput` `clone()` Returns a clone of this stream.
`abstract void` `close()` Closes the stream to further operations.
`abstract long` `getFilePointer()` Returns the current position in this file, where the next read will occur.
`abstract long` `length()` The number of bytes in the file.
`abstract void` `seek(long pos)` Sets current position in this file, where the next read will occur.
`String` `toString()`

Methods inherited from class org.apache.lucene.store.DataInput
`readByte, readBytes, readBytes, readInt, readLong, readShort, readString, readStringSet, readStringStringMap, readVInt, readVLong`

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

Constructor Detail

### IndexInput

    protected IndexInput(String resourceDescription)

  resourceDescription should be a non-null, opaque string describing this resource; it's returned from `toString()`.

Method Detail

### close

    public abstract void close()
                        throws IOException

  Closes the stream to further operations.

  Specified by:
    `close` in interface `Closeable`
  Throws:
    `IOException`

### getFilePointer

    public abstract long getFilePointer()

  Returns the current position in this file, where the next read will occur.

  See Also:
    `seek(long)`

### seek

    public abstract void seek(long pos)
                       throws IOException

  Sets current position in this file, where the next read will occur.

  Throws:
    `IOException`
  See Also:
    `getFilePointer()`

### length

    public abstract long length()

  The number of bytes in the file.

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`

### clone

    public IndexInput clone()

  Returns a clone of this stream.

  Clones of a stream access the same data, and are positioned at the same point as the stream they were cloned from.

  Expert: Subclasses must ensure that clones may be positioned at different points in the input from each other and from the stream they were cloned from.

  Warning: Lucene never closes cloned `IndexInput`s, it will only do this on the original one. The original instance must take care that cloned instances throw `AlreadyClosedException` when the original one is closed.

  Overrides:
    `clone` in class `DataInput`

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