Class IndexOutput

java.lang.Object
org.apache.lucene.store.DataOutput
org.apache.lucene.store.IndexOutput
All Implemented Interfaces:
Closeable, AutoCloseable
Direct Known Subclasses:
ByteBuffersIndexOutput, OutputStreamIndexOutput, RateLimitedIndexOutput

public abstract class IndexOutput extends DataOutput implements Closeable
A DataOutput for appending data to a file in a Directory.

Instances of this class are not thread-safe.

See Also:
  • Constructor Details

    • IndexOutput

      protected IndexOutput(String resourceDescription, String name)
      Sole constructor. resourceDescription should be non-null, opaque string describing this resource; it's returned from toString().
  • Method Details

    • getName

      public String getName()
      Returns the name used to create this IndexOutput. This is especially useful when using Directory.createTempOutput(java.lang.String, java.lang.String, org.apache.lucene.store.IOContext).
    • close

      public abstract void close() throws IOException
      Closes this stream to further operations.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • getFilePointer

      public abstract long getFilePointer()
      Returns the current position in this file, where the next write will occur.
    • getChecksum

      public abstract long getChecksum() throws IOException
      Returns the current checksum of bytes written so far
      Throws:
      IOException
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • alignFilePointer

      public final long alignFilePointer(int alignmentBytes) throws IOException
      Aligns the current file pointer to multiples of alignmentBytes bytes to improve reads with mmap. This will write between 0 and (alignmentBytes-1) zero bytes using DataOutput.writeByte(byte).
      Parameters:
      alignmentBytes - the alignment to which it should forward file pointer (must be a power of 2)
      Returns:
      the new file pointer after alignment
      Throws:
      IOException
      See Also:
    • alignOffset

      public static final long alignOffset(long offset, int alignmentBytes)
      Aligns the given offset to multiples of alignmentBytes bytes by rounding up. The alignment must be a power of 2.