Package org.springframework.util
Class ResizableByteArrayOutputStream
- java.lang.Object
- java.io.OutputStream
- java.io.ByteArrayOutputStream
- org.springframework.util.ResizableByteArrayOutputStream
- All Implemented Interfaces:
Closeable
,Flushable
,AutoCloseable
public class ResizableByteArrayOutputStream extends ByteArrayOutputStream
An extension ofByteArrayOutputStream
that:- has public
grow(int)
andresize(int)
methods to get more control over the size of the internal buffer - has a higher initial capacity (256) by default
As of 4.2, this class has been superseded by
FastByteArrayOutputStream
for Spring's internal use where no assignability toByteArrayOutputStream
is needed (sinceFastByteArrayOutputStream
is more efficient with buffer resize management but doesn't extend the standardByteArrayOutputStream
).- Since:
- 4.0.3
- Author:
- Brian Clozel, Juergen Hoeller
- See Also:
resize(int)
,FastByteArrayOutputStream
Field Summary
Fields inherited from class java.io.ByteArrayOutputStream
buf, count
Constructor Summary
Constructors Constructor Description ResizableByteArrayOutputStream()
Create a newResizableByteArrayOutputStream
with the default initial capacity of 256 bytes.ResizableByteArrayOutputStream(int initialCapacity)
Create a newResizableByteArrayOutputStream
with the specified initial capacity.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
capacity()
Return the current size of this stream's internal buffer.void
grow(int additionalCapacity)
Grow the internal buffer size.void
resize(int targetCapacity)
Resize the internal buffer size to a specified capacity.Methods inherited from class java.io.ByteArrayOutputStream
close, reset, size, toByteArray, toString, toString, toString, toString, write, write, writeBytes, writeTo
Methods inherited from class java.io.OutputStream
flush, nullOutputStream, write
Constructor Detail
ResizableByteArrayOutputStream
public ResizableByteArrayOutputStream()
Create a newResizableByteArrayOutputStream
with the default initial capacity of 256 bytes.
ResizableByteArrayOutputStream
public ResizableByteArrayOutputStream(int initialCapacity)
Create a newResizableByteArrayOutputStream
with the specified initial capacity.- Parameters:
initialCapacity
- the initial buffer size in bytes
Method Detail
resize
public void resize(int targetCapacity)
Resize the internal buffer size to a specified capacity.- Parameters:
targetCapacity
- the desired size of the buffer- Throws:
IllegalArgumentException
- if the given capacity is smaller than the actual size of the content stored in the buffer already- See Also:
ByteArrayOutputStream.size()
grow
public void grow(int additionalCapacity)
Grow the internal buffer size.- Parameters:
additionalCapacity
- the number of bytes to add to the current buffer size- See Also:
ByteArrayOutputStream.size()
capacity
public int capacity()
Return the current size of this stream's internal buffer.