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 ofByteArrayOutputStreamthat:- 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
FastByteArrayOutputStreamfor Spring's internal use where no assignability toByteArrayOutputStreamis needed (sinceFastByteArrayOutputStreamis 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 newResizableByteArrayOutputStreamwith the default initial capacity of 256 bytes.ResizableByteArrayOutputStream(int initialCapacity)Create a newResizableByteArrayOutputStreamwith the specified initial capacity.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcapacity()Return the current size of this stream's internal buffer.voidgrow(int additionalCapacity)Grow the internal buffer size.voidresize(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 newResizableByteArrayOutputStreamwith the default initial capacity of 256 bytes.
ResizableByteArrayOutputStream
public ResizableByteArrayOutputStream(int initialCapacity)
Create a newResizableByteArrayOutputStreamwith 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.