Package org.eclipse.jetty.io
Class ByteBufferOutputStream2
java.lang.Object
java.io.OutputStream
org.eclipse.jetty.io.ByteBufferOutputStream2
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
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
supplied
ByteBufferPool
or freshly allocated if one is not supplied.
Designed to mimic ByteArrayOutputStream
but with better memory usage, and less copying.-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
int
size()
Take the combined buffer containing all content written to the OutputStream.byte[]
Take the combined buffer containing all content written to the OutputStream.toString()
void
write
(byte[] b, int off, int len) void
write
(int b) void
write
(ByteBuffer buffer) void
writeTo
(OutputStream out) void
writeTo
(ByteBuffer buffer) Methods inherited from class java.io.OutputStream
flush, nullOutputStream, write
-
Constructor Details
-
ByteBufferOutputStream2
public ByteBufferOutputStream2() -
ByteBufferOutputStream2
-
-
Method Details
-
getByteBufferPool
-
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
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 classOutputStream
-
write
public void write(byte[] b, int off, int len) - Overrides:
write
in classOutputStream
-
write
-
writeTo
-
writeTo
- Throws:
IOException
-
close
public void close()- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in classOutputStream
-
toString
-