Package io.deephaven.io.streams
Class ByteBufferOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- io.deephaven.io.streams.ByteBufferOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.DataOutput,java.io.Flushable,java.lang.AutoCloseable
public class ByteBufferOutputStream extends java.io.OutputStream implements java.io.DataOutputThis is an OutputStream implementation which places the output into a java.nio.ByteBuffer. The constructor accepts an initial buffer and an instance of ByteBufferSink. When an output operation would cause the buffer to overflow, it is handed to the sink's acceptBuffer() method, which is expected to dispose of the existing contents and return a buffer in which writing can continue. Note that the stream contains no state other than the buffer itself, so the buffer and/or the sink can be switched at any time by calling setBuffer() or setSink().
-
-
Field Summary
Fields Modifier and Type Field Description protected java.nio.ByteBufferbufprotected ByteBufferSinksink
-
Constructor Summary
Constructors Constructor Description ByteBufferOutputStream(java.nio.ByteBuffer b, ByteBufferSink sink)Returns a new ByteBufferOutputStream with the specified initial buffer and sink.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ByteBufferOutputStreamappendByte(byte n)ByteBufferOutputStreamappendByteBuffer(java.nio.ByteBuffer bb)ByteBufferOutputStreamappendBytes(java.lang.CharSequence s)ByteBufferOutputStreamappendBytes(java.lang.CharSequence s, int position, int len)ByteBufferOutputStreamappendChars(java.lang.CharSequence s)ByteBufferOutputStreamappendChars(java.lang.CharSequence s, int position, int len)ByteBufferOutputStreamappendDouble(double p)ByteBufferOutputStreamappendInt(int n)ByteBufferOutputStreamappendLong(long n)ByteBufferOutputStreamappendShort(short n)voidclose()voidflush()java.nio.ByteBuffergetBuffer()voidsetBuffer(java.nio.ByteBuffer b)Install a new buffer for all future writes.voidsetSink(ByteBufferSink sink)Install a new sink for all future writes.voidwrite(byte[] ba)voidwrite(byte[] ba, int off, int len)voidwrite(int b)voidwrite(java.nio.ByteBuffer b)voidwriteBoolean(boolean v)voidwriteByte(int v)voidwriteBytes(java.lang.String s)voidwriteChar(int v)voidwriteChars(java.lang.String s)voidwriteDouble(double d)voidwriteFloat(float f)voidwriteInt(int v)voidwriteLong(long v)voidwriteShort(int v)voidwriteUTF(java.lang.CharSequence str)voidwriteUTF(java.lang.String str)
-
-
-
Field Detail
-
buf
protected volatile java.nio.ByteBuffer buf
-
sink
protected ByteBufferSink sink
-
-
Constructor Detail
-
ByteBufferOutputStream
public ByteBufferOutputStream(java.nio.ByteBuffer b, ByteBufferSink sink)Returns a new ByteBufferOutputStream with the specified initial buffer and sink.- Parameters:
b- The initial buffersink- The sink that should be used to accept full buffers
-
-
Method Detail
-
setBuffer
public void setBuffer(java.nio.ByteBuffer b)
Install a new buffer for all future writes.
-
setSink
public void setSink(ByteBufferSink sink)
Install a new sink for all future writes.
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.OutputStream- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(int b) throws java.io.IOException- Specified by:
writein interfacejava.io.DataOutput- Specified by:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(byte[] ba) throws java.io.IOException- Specified by:
writein interfacejava.io.DataOutput- Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(byte[] ba, int off, int len) throws java.io.IOException- Specified by:
writein interfacejava.io.DataOutput- Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException
-
write
public void write(java.nio.ByteBuffer b) throws java.io.IOException- Throws:
java.io.IOException
-
writeBoolean
public void writeBoolean(boolean v) throws java.io.IOException- Specified by:
writeBooleanin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeByte
public void writeByte(int v) throws java.io.IOException- Specified by:
writeBytein interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeShort
public void writeShort(int v) throws java.io.IOException- Specified by:
writeShortin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeChar
public void writeChar(int v) throws java.io.IOException- Specified by:
writeCharin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeInt
public void writeInt(int v) throws java.io.IOException- Specified by:
writeIntin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeLong
public void writeLong(long v) throws java.io.IOException- Specified by:
writeLongin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeFloat
public void writeFloat(float f) throws java.io.IOException- Specified by:
writeFloatin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeDouble
public void writeDouble(double d) throws java.io.IOException- Specified by:
writeDoublein interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeBytes
public void writeBytes(java.lang.String s) throws java.io.IOException- Specified by:
writeBytesin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeChars
public void writeChars(java.lang.String s) throws java.io.IOException- Specified by:
writeCharsin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeUTF
public void writeUTF(java.lang.String str) throws java.io.IOException- Specified by:
writeUTFin interfacejava.io.DataOutput- Throws:
java.io.IOException
-
writeUTF
public void writeUTF(java.lang.CharSequence str) throws java.io.IOException- Throws:
java.io.IOException
-
appendByteBuffer
public ByteBufferOutputStream appendByteBuffer(java.nio.ByteBuffer bb) throws java.io.IOException
- Throws:
java.io.IOException
-
appendByte
public ByteBufferOutputStream appendByte(byte n) throws java.io.IOException
- Throws:
java.io.IOException
-
appendShort
public ByteBufferOutputStream appendShort(short n) throws java.io.IOException
- Throws:
java.io.IOException
-
appendInt
public ByteBufferOutputStream appendInt(int n) throws java.io.IOException
- Throws:
java.io.IOException
-
appendLong
public ByteBufferOutputStream appendLong(long n) throws java.io.IOException
- Throws:
java.io.IOException
-
appendDouble
public ByteBufferOutputStream appendDouble(double p) throws java.io.IOException
- Throws:
java.io.IOException
-
appendChars
public ByteBufferOutputStream appendChars(java.lang.CharSequence s) throws java.io.IOException
- Throws:
java.io.IOException
-
appendChars
public ByteBufferOutputStream appendChars(java.lang.CharSequence s, int position, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
appendBytes
public ByteBufferOutputStream appendBytes(java.lang.CharSequence s) throws java.io.IOException
- Throws:
java.io.IOException
-
appendBytes
public ByteBufferOutputStream appendBytes(java.lang.CharSequence s, int position, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
getBuffer
public java.nio.ByteBuffer getBuffer()
-
-