Package org.eclipse.jetty.io
Class ByteBufferOutputStream2
- java.lang.Object
-
- java.io.OutputStream
-
- org.eclipse.jetty.io.ByteBufferOutputStream2
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class ByteBufferOutputStream2 extends java.io.OutputStream
This class implements an output stream in which the data is written into a list of ByteBuffer, the buffer list automatically grows as data is written to it, the buffers are taken from the suppliedByteBufferPool
or freshly allocated if one is not supplied. Designed to mimicByteArrayOutputStream
but with better memory usage, and less copying.
-
-
Constructor Summary
Constructors Constructor Description ByteBufferOutputStream2()
ByteBufferOutputStream2(ByteBufferPool bufferPool, boolean direct)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
ByteBufferPool
getByteBufferPool()
int
size()
java.nio.ByteBuffer
takeByteBuffer()
Take the combined buffer containing all content written to the OutputStream.byte[]
toByteArray()
java.nio.ByteBuffer
toByteBuffer()
Take the combined buffer containing all content written to the OutputStream.java.lang.String
toString()
void
write(byte[] b, int off, int len)
void
write(int b)
void
write(java.nio.ByteBuffer buffer)
void
writeTo(java.io.OutputStream out)
void
writeTo(java.nio.ByteBuffer buffer)
-
-
-
Constructor Detail
-
ByteBufferOutputStream2
public ByteBufferOutputStream2()
-
ByteBufferOutputStream2
public ByteBufferOutputStream2(ByteBufferPool bufferPool, boolean direct)
-
-
Method Detail
-
getByteBufferPool
public ByteBufferPool getByteBufferPool()
-
takeByteBuffer
public java.nio.ByteBuffer takeByteBuffer()
Take the combined buffer containing all content written to the OutputStream. The caller is responsible for releasing thisByteBuffer
back into theByteBufferPool
.- Returns:
- a buffer containing all content written to the OutputStream.
-
toByteBuffer
public java.nio.ByteBuffer toByteBuffer()
Take the combined buffer containing all content written to the OutputStream. The returned buffer is still contained within the OutputStream and will be released back to theByteBufferPool
when the OutputStream is closed.- Returns:
- a buffer containing all content written to the OutputStream.
-
toByteArray
public byte[] toByteArray()
- Returns:
- a newly allocated byte array containing all content written into the OutputStream.
-
size
public int size()
-
write
public void write(int b)
- Specified by:
write
in classjava.io.OutputStream
-
write
public void write(byte[] b, int off, int len)
- Overrides:
write
in classjava.io.OutputStream
-
write
public void write(java.nio.ByteBuffer buffer)
-
writeTo
public void writeTo(java.nio.ByteBuffer buffer)
-
writeTo
public void writeTo(java.io.OutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
close
public void close()
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.OutputStream
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-