Package org.apache.solr.common.util

# Class FastOutputStream

java.lang.Object
java.io.OutputStream
org.apache.solr.common.util.FastOutputStream

All Implemented Interfaces:
  `Closeable`, `DataOutput`, `Flushable`, `AutoCloseable`

public class FastOutputStream extends OutputStream implements DataOutput
Single threaded buffered OutputStream Internal Solr use only, subject to change.

## Field Summary

Fields
Modifier and Type
Field
Description
`protected byte[]`
`buf`
`protected final OutputStream`
`out`
`protected int`
`pos`
`protected long`
`written`

## Constructor Summary

Constructors
Constructor
Description
`FastOutputStream(OutputStream w)`
`FastOutputStream(OutputStream sink, byte[] tempBuffer, int start)`

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
`void`
`flush()`
`void`
`flush(byte[] buf, int offset, int len)`
All writes to the sink will go through this method
`void`
`flushBuffer()`
Only flushes the buffer of the FastOutputStream, not that of the underlying stream.
`void`
`reserve(int len)`
reserve at least len bytes at the end of the buffer.
`void`
`setWritten(long written)`
Resets the count returned by written()
`long`
`size()`
`static FastOutputStream`
`wrap(OutputStream sink)`
`void`
`write(byte b)`
`void`
`write(byte[] b)`
`void`
`write(byte[] arr, int off, int len)`
`void`
`write(int b)`
`void`
`writeBoolean(boolean v)`
`void`
`writeByte(int v)`
`void`
`writeBytes(String s)`
`void`
`writeChar(int v)`
`void`
`writeChars(String s)`
`void`
`writeDouble(double v)`
`void`
`writeFloat(float v)`
`void`
`writeInt(int v)`
`void`
`writeLong(long v)`
`void`
`writeShort(int v)`
`void`
`writeUTF(String s)`
`void`
`writeUtf8CharSeq(Utf8CharSequence utf8)`
Copies a `Utf8CharSequence` without making extra copies
`long`
`written()`
Returns the number of bytes actually written to the underlying OutputStream, not including anything currently buffered by this class itself.

### Methods inherited from class java.io.OutputStream

`nullOutputStream`

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

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

## Field Details

### out

protected final OutputStream out

### buf

protected byte[] buf

### written

protected long written

### pos

protected int pos

## Constructor Details

### FastOutputStream

public FastOutputStream(OutputStream w)

### FastOutputStream

public FastOutputStream(OutputStream sink, byte[] tempBuffer, int start)

## Method Details

### wrap

public static FastOutputStream wrap(OutputStream sink)

### write

public void write(int b) throws IOException

Specified by:
  `write` in interface `DataOutput`
Specified by:
  `write` in class `OutputStream`
Throws:
  `IOException`

### write

public void write(byte[] b) throws IOException

Specified by:
  `write` in interface `DataOutput`
Overrides:
  `write` in class `OutputStream`
Throws:
  `IOException`

### write

public void write(byte b) throws IOException

Throws:
  `IOException`

### write

public void write(byte[] arr, int off, int len) throws IOException

Specified by:
  `write` in interface `DataOutput`
Overrides:
  `write` in class `OutputStream`
Throws:
  `IOException`

### reserve

public void reserve(int len) throws IOException
reserve at least len bytes at the end of the buffer. Invalid if len > buffer.length

Throws:
  `IOException`

### writeBoolean

public void writeBoolean(boolean v) throws IOException

Specified by:
  `writeBoolean` in interface `DataOutput`
Throws:
  `IOException`

### writeByte

public void writeByte(int v) throws IOException

Specified by:
  `writeByte` in interface `DataOutput`
Throws:
  `IOException`

### writeShort

public void writeShort(int v) throws IOException

Specified by:
  `writeShort` in interface `DataOutput`
Throws:
  `IOException`

### writeChar

public void writeChar(int v) throws IOException

Specified by:
  `writeChar` in interface `DataOutput`
Throws:
  `IOException`

### writeInt

public void writeInt(int v) throws IOException

Specified by:
  `writeInt` in interface `DataOutput`
Throws:
  `IOException`

### writeLong

public void writeLong(long v) throws IOException

Specified by:
  `writeLong` in interface `DataOutput`
Throws:
  `IOException`

### writeFloat

public void writeFloat(float v) throws IOException

Specified by:
  `writeFloat` in interface `DataOutput`
Throws:
  `IOException`

### writeDouble

public void writeDouble(double v) throws IOException

Specified by:
  `writeDouble` in interface `DataOutput`
Throws:
  `IOException`

### writeBytes

public void writeBytes(String s) throws IOException

Specified by:
  `writeBytes` in interface `DataOutput`
Throws:
  `IOException`

### writeChars

public void writeChars(String s) throws IOException

Specified by:
  `writeChars` in interface `DataOutput`
Throws:
  `IOException`

### writeUTF

public void writeUTF(String s) throws IOException

Specified by:
  `writeUTF` in interface `DataOutput`
Throws:
  `IOException`

### flush

public void flush() throws IOException

Specified by:
  `flush` in interface `Flushable`
Overrides:
  `flush` in class `OutputStream`
Throws:
  `IOException`

### close

public void close() throws IOException

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

### flushBuffer

public void flushBuffer() throws IOException
Only flushes the buffer of the FastOutputStream, not that of the underlying stream.

Throws:
  `IOException`

### flush

public void flush(byte[] buf, int offset, int len) throws IOException
All writes to the sink will go through this method

Throws:
  `IOException`

### size

public long size()

### written

public long written()
Returns the number of bytes actually written to the underlying OutputStream, not including anything currently buffered by this class itself.

### setWritten

public void setWritten(long written)
Resets the count returned by written()

### writeUtf8CharSeq

public void writeUtf8CharSeq(Utf8CharSequence utf8) throws IOException
Copies a `Utf8CharSequence` without making extra copies

Throws:
  `IOException`