org.apache.lucene.store

## Class IndexOutput

- java.lang.Object
- - org.apache.lucene.store.DataOutput
  - - org.apache.lucene.store.IndexOutput

All Implemented Interfaces:
  Closeable, AutoCloseable

Direct Known Subclasses:
  BufferedIndexOutput, ChecksumIndexOutput, RAMOutputStream

    public abstract class IndexOutput
    extends DataOutput
    implements Closeable

Abstract base class for output to a file in a Directory. A random-access output stream. Used for all Lucene index output operations.

`IndexOutput` may only be used from one thread, because it is not thread safe (it keeps internal state like file position).

See Also:
  `Directory`, `IndexInput`

### Constructor Summary

Constructors
Constructor and Description
`IndexOutput()`

### Method Summary

Methods
`abstract void` `close()` Closes this stream to further operations.
`abstract void` `flush()` Forces any buffered output to be written.
`abstract long` `getFilePointer()` Returns the current position in this file, where the next write will occur.
`abstract long` `length()` The number of bytes in the file.
`abstract void` `seek(long pos)` Deprecated. (4.1) This method will be removed in Lucene 5.0
`void` `setLength(long length)` Set the file length.

### Methods inherited from class org.apache.lucene.store.DataOutput

`copyBytes, writeByte, writeBytes, writeBytes, writeInt, writeLong, writeShort, writeString, writeStringSet, writeStringStringMap, writeVInt, writeVLong`

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

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

### Constructor Detail

#### IndexOutput

    public IndexOutput()

### Method Detail

#### flush

    public abstract void flush()
                        throws IOException

Forces any buffered output to be written.

Throws:
  `IOException`

#### close

    public abstract void close()
                        throws IOException

Closes this stream to further operations.

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

#### getFilePointer

    public abstract long getFilePointer()

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

See Also:
  `seek(long)`

#### seek

    @Deprecated
    public abstract void seek(long pos)
                       throws IOException

Deprecated. (4.1) This method will be removed in Lucene 5.0
Sets current position in this file, where the next write will occur.

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

#### length

    public abstract long length()
                         throws IOException

The number of bytes in the file.

Throws:
  `IOException`

#### setLength

    public void setLength(long length)
                   throws IOException

Set the file length. By default, this method does nothing (it's optional for a Directory to implement it). But, certain Directory implementations (for example @see FSDirectory) can use this to inform the underlying IO system to pre-allocate the file to the specified size. If the length is longer than the current file length, the bytes added to the file are undefined. Otherwise the file is truncated.

Parameters:
  `length` - file length
Throws:
  `IOException`