类 FastByteArrayOutputStream
- java.lang.Object
- java.io.OutputStream
- org.springframework.util.FastByteArrayOutputStream
- 所有已实现的接口:
Closeable
,Flushable
,AutoCloseable
public class FastByteArrayOutputStream extends OutputStream
A speedy alternative toByteArrayOutputStream
. Note that this variant does not extendByteArrayOutputStream
, unlike its siblingResizableByteArrayOutputStream
.Unlike
ByteArrayOutputStream
, this implementation is backed by aLinkedList
ofbyte[]
instead of 1 constantly resizingbyte[]
. It does not copy buffers when it gets expanded.The initial buffer is only created when the stream is first written. There is also no copying of the internal buffer if its contents is extracted with the
writeTo(OutputStream)
method.- 从以下版本开始:
- 4.2
- 作者:
- Craig Andrews, Juergen Hoeller
- 另请参阅:
resize(int)
,ResizableByteArrayOutputStream
构造器概要
构造器 构造器 说明 FastByteArrayOutputStream()
Create a newFastByteArrayOutputStream
with the default initial capacity of 256 bytes.FastByteArrayOutputStream(int initialBlockSize)
Create a newFastByteArrayOutputStream
with the specified initial capacity.
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 void
close()
InputStream
getInputStream()
Get anInputStream
to retrieve the data in this OutputStream.void
reset()
Reset the contents of thisFastByteArrayOutputStream
.void
resize(int targetCapacity)
Resize the internal buffer size to a specified capacity.int
size()
Return the number of bytes stored in thisFastByteArrayOutputStream
.byte[]
toByteArray()
Creates a newly allocated byte array.byte[]
toByteArrayUnsafe()
Convert the stream's data to a byte array and return the byte array.String
toString()
Convert the buffer's contents into a string decoding bytes using the platform's default character set.void
write(byte[] data, int offset, int length)
void
write(int datum)
void
writeTo(OutputStream out)
Write the buffers content to the given OutputStream.从类继承的方法 java.io.OutputStream
flush, nullOutputStream, write
构造器详细资料
FastByteArrayOutputStream
public FastByteArrayOutputStream()
Create a newFastByteArrayOutputStream
with the default initial capacity of 256 bytes.
FastByteArrayOutputStream
public FastByteArrayOutputStream(int initialBlockSize)
Create a newFastByteArrayOutputStream
with the specified initial capacity.- 参数:
initialBlockSize
- the initial buffer size in bytes
方法详细资料
write
public void write(int datum) throws IOException
- 指定者:
write
在类中OutputStream
- 抛出:
IOException
write
public void write(byte[] data, int offset, int length) throws IOException
- 覆盖:
write
在类中OutputStream
- 抛出:
IOException
close
public void close()
- 指定者:
close
在接口中AutoCloseable
- 指定者:
close
在接口中Closeable
- 覆盖:
close
在类中OutputStream
toString
public String toString()
Convert the buffer's contents into a string decoding bytes using the platform's default character set. The length of the new String is a function of the character set, and hence may not be equal to the size of the buffer.This method always replaces malformed-input and unmappable-character sequences with the default replacement string for the platform's default character set. The CharsetDecoder class should be used when more control over the decoding process is required.
size
public int size()
Return the number of bytes stored in thisFastByteArrayOutputStream
.
toByteArrayUnsafe
public byte[] toByteArrayUnsafe()
Convert the stream's data to a byte array and return the byte array.Also replaces the internal structures with the byte array to conserve memory: if the byte array is being made anyways, mind as well as use it. This approach also means that if this method is called twice without any writes in between, the second call is a no-op.
This method is "unsafe" as it returns the internal buffer. Callers should not modify the returned buffer.
- 返回:
- the current contents of this output stream, as a byte array.
- 另请参阅:
size()
,toByteArray()
toByteArray
public byte[] toByteArray()
Creates a newly allocated byte array.Its size is the current size of this output stream and the valid contents of the buffer have been copied into it.
- 返回:
- the current contents of this output stream, as a byte array.
- 另请参阅:
size()
,toByteArrayUnsafe()
reset
public void reset()
Reset the contents of thisFastByteArrayOutputStream
.All currently accumulated output in the output stream is discarded. The output stream can be used again.
getInputStream
public InputStream getInputStream()
Get anInputStream
to retrieve the data in this OutputStream.Note that if any methods are called on the OutputStream (including, but not limited to, any of the write methods,
reset()
,toByteArray()
, andtoByteArrayUnsafe()
) then theInputStream
's behavior is undefined.- 返回:
InputStream
of the contents of this OutputStream
writeTo
public void writeTo(OutputStream out) throws IOException
Write the buffers content to the given OutputStream.- 参数:
out
- the OutputStream to write to- 抛出:
IOException
resize
public void resize(int targetCapacity)
Resize the internal buffer size to a specified capacity.- 参数:
targetCapacity
- the desired size of the buffer- 抛出:
IllegalArgumentException
- if the given capacity is smaller than the actual size of the content stored in the buffer already- 另请参阅:
size()