org.apache.lucene.store

## Class BufferedIndexOutput

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

All Implemented Interfaces:
  Closeable, AutoCloseable

Direct Known Subclasses:
  FSDirectory.FSIndexOutput

    public abstract class BufferedIndexOutput
    extends IndexOutput

Base implementation class for buffered `IndexOutput`.

### Field Summary

Fields
`static int` `DEFAULT_BUFFER_SIZE` The default buffer size in bytes (16384).

### Constructor Summary

Constructors
Constructor and Description
`BufferedIndexOutput()` Creates a new `BufferedIndexOutput` with the default buffer size (16384 bytes see `DEFAULT_BUFFER_SIZE`)
`BufferedIndexOutput(int bufferSize)` Creates a new `BufferedIndexOutput` with the given buffer size.

### Method Summary

Methods
`void` `close()` Closes this stream to further operations.
`void` `flush()` Forces any buffered output to be written.
`protected abstract void` `flushBuffer(byte[] b, int offset, int len)` Expert: implements buffer write.
`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.
`void` `seek(long pos)` Sets current position in this file, where the next write will occur.
`void` `writeByte(byte b)` Writes a single byte.
`void` `writeBytes(byte[] b, int offset, int length)` Writes an array of bytes.

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

`setLength`

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

`copyBytes, 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`

### Field Detail

#### DEFAULT_BUFFER_SIZE

    public static final int DEFAULT_BUFFER_SIZE

The default buffer size in bytes (16384).

See Also:
  Constant Field Values

### Constructor Detail

#### BufferedIndexOutput

    public BufferedIndexOutput()

Creates a new `BufferedIndexOutput` with the default buffer size (16384 bytes see `DEFAULT_BUFFER_SIZE`)

#### BufferedIndexOutput

    public BufferedIndexOutput(int bufferSize)

Creates a new `BufferedIndexOutput` with the given buffer size.

Parameters:
  `bufferSize` - the buffer size in bytes used to buffer writes internally.
Throws:
  `IllegalArgumentException` - if the given buffer size is less or equal to `0`

### Method Detail

#### writeByte

    public void writeByte(byte b)
                   throws IOException

Description copied from class: `DataOutput`
Writes a single byte.

The most primitive data type is an eight-bit byte. Files are accessed as sequences of bytes. All other data types are defined as sequences of bytes, so file formats are byte-order independent.

Specified by:
  `writeByte` in class `DataOutput`
Throws:
  `IOException`
See Also:
  `DataInput.readByte()`

#### writeBytes

    public void writeBytes(byte[] b,
                  int offset,
                  int length)
                    throws IOException

Description copied from class: `DataOutput`
Writes an array of bytes.

Specified by:
  `writeBytes` in class `DataOutput`
Parameters:
  `b` - the bytes to write
  `offset` - the offset in the byte array
  `length` - the number of bytes to write
Throws:
  `IOException`
See Also:
  `DataInput.readBytes(byte[],int,int)`

#### flush

    public void flush()
               throws IOException

Description copied from class: `IndexOutput`
Forces any buffered output to be written.

Specified by:
  `flush` in class `IndexOutput`
Throws:
  `IOException`

#### flushBuffer

    protected abstract void flushBuffer(byte[] b,
                   int offset,
                   int len)
                                 throws IOException

Expert: implements buffer write. Writes bytes at the current position in the output.

Parameters:
  `b` - the bytes to write
  `offset` - the offset in the byte array
  `len` - the number of bytes to write
Throws:
  `IOException`

#### close

    public void close()
               throws IOException

Description copied from class: `IndexOutput`
Closes this stream to further operations.

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

#### getFilePointer

    public long getFilePointer()

Description copied from class: `IndexOutput`
Returns the current position in this file, where the next write will occur.

Specified by:
  `getFilePointer` in class `IndexOutput`
See Also:
  `IndexOutput.seek(long)`

#### seek

    public void seek(long pos)
              throws IOException

Description copied from class: `IndexOutput`
Sets current position in this file, where the next write will occur.

Specified by:
  `seek` in class `IndexOutput`
Throws:
  `IOException`
See Also:
  `IndexOutput.getFilePointer()`

#### length

    public abstract long length()
                         throws IOException

Description copied from class: `IndexOutput`
The number of bytes in the file.

Specified by:
  `length` in class `IndexOutput`
Throws:
  `IOException`