@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2022 the original author or authors .
* Copyright 2002 - 2023 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -33,12 +33,12 @@ import org.springframework.lang.Nullable;
@@ -33,12 +33,12 @@ import org.springframework.lang.Nullable;
* its sibling { @link ResizableByteArrayOutputStream } .
*
* < p > Unlike { @link java . io . ByteArrayOutputStream } , this implementation is backed
* by a { @link java . util . ArrayDeque } of { @code byte [ ] } instead of 1 constantly
* resizing { @code byte [ ] } . It does not copy buffers when it gets expanded .
* by a { @link java . util . ArrayDeque } of { @code byte [ ] } buffers instead of one
* constantly resizing { @code byte [ ] } . It does not copy buffers when it gets expanded .
*
* < p > The initial buffer is only created when the stream is first written .
* There is also no copying of the internal buffer if its content is extracted
* with the { @link # writeTo ( OutputStream ) } method .
* There is also no copying of the internal buffers if the stream ' s content is
* extracted via the { @link # writeTo ( OutputStream ) } method .
*
* @author Craig Andrews
* @author Juergen Hoeller
@ -72,16 +72,16 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -72,16 +72,16 @@ public class FastByteArrayOutputStream extends OutputStream {
/ * *
* Create a new < code > FastByteArrayOutputStream < / code >
* with the default initial capacity of 256 bytes .
* Create a new { @code FastByteArrayOutputStream } with the default initial
* capacity of 256 bytes .
* /
public FastByteArrayOutputStream ( ) {
this ( DEFAULT_BLOCK_SIZE ) ;
}
/ * *
* Create a new < code > FastByteArrayOutputStream < / code >
* with the specified initial capacity .
* Create a new { @code FastByteArrayOutputStream } with the specified initial
* capacity .
* @param initialBlockSize the initial buffer size in bytes
* /
public FastByteArrayOutputStream ( int initialBlockSize ) {
@ -150,16 +150,17 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -150,16 +150,17 @@ public class FastByteArrayOutputStream extends OutputStream {
}
/ * *
* Convert the buffer ' s contents in to a string decoding bytes using the
* Convert this stream ' s contents to a string by decoding the bytes using the
* platform ' s default character set . The length of the new { @code String }
* is a function of the character set , and hence may not be equal to the
* size of the buffer .
* size of the buffers .
* < p > This method always replaces malformed - input and unmappable - character
* sequences with the default replacement string for the platform ' s
* default character set . The { @linkplain java . nio . charset . CharsetDecoder }
* class should be used when more control over the decoding process is
* required .
* @return a String decoded from the buffer ' s contents
* @return a String decoded from this stream ' s contents
* @see # toString ( Charset )
* /
@Override
public String toString ( ) {
@ -167,19 +168,19 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -167,19 +168,19 @@ public class FastByteArrayOutputStream extends OutputStream {
}
/ * *
* Converts the buffer ' s contents in to a string by decoding the bytes using
* the specified { @link java . nio . charset . Charset c harset } .
*
* @param charset the { @linkplain java . nio . charset . Charset charset }
* to be used to decode the { @code bytes }
* @return a String decoded from the buffer ' s contents
* Convert this stream ' s contents to a string by decoding the bytes using the
* specified { @link Charset } .
* @param charset the { @link Charset } to use to decode the bytes
* @return a String decoded from this stream ' s contents
* @since 6 . 1 . 2
* @see # toString ( )
* /
public String toString ( Charset charset ) {
if ( size ( ) = = 0 ) {
return "" ;
}
if ( buffers . size ( ) = = 1 ) {
return new String ( buffers . getFirst ( ) , 0 , index , charset ) ;
if ( this . buffers . size ( ) = = 1 ) {
return new String ( this . buffers . getFirst ( ) , 0 , this . index , charset ) ;
}
return new String ( toByteArrayUnsafe ( ) , charset ) ;
}
@ -187,14 +188,14 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -187,14 +188,14 @@ public class FastByteArrayOutputStream extends OutputStream {
// Custom methods
/ * *
* Return the number of bytes stored in this < code > FastByteArrayOutputStream < / code > .
* Return the number of bytes stored in this { @code FastByteArrayOutputStream } .
* /
public int size ( ) {
return ( this . alreadyBufferedSize + this . index ) ;
}
/ * *
* Convert the stream ' s data to a byte array and return the byte array .
* Convert this stream ' s contents to a byte array and return the byte array .
* < p > Also replaces the internal structures with the byte array to
* conserve memory : if the byte array is being created anyway , we might
* as well as use it . This approach also means that if this method is
@ -202,7 +203,7 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -202,7 +203,7 @@ public class FastByteArrayOutputStream extends OutputStream {
* a no - op .
* < p > This method is "unsafe" as it returns the internal buffer .
* Callers should not modify the returned buffer .
* @return the current contents of this output stream , as a byte array .
* @return the current contents of this stream as a byte array
* @see # size ( )
* @see # toByteArray ( )
* /
@ -218,8 +219,8 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -218,8 +219,8 @@ public class FastByteArrayOutputStream extends OutputStream {
/ * *
* Create a newly allocated byte array .
* < p > Its size is the current size of this output stream , and it will
* contain the valid contents of the internal buffer .
* @return the current contents of this output stream , as a byte array
* contain the valid contents of the internal buffers .
* @return the current contents of this stream as a byte array
* @see # size ( )
* @see # toByteArrayUnsafe ( )
* /
@ -229,7 +230,7 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -229,7 +230,7 @@ public class FastByteArrayOutputStream extends OutputStream {
}
/ * *
* Reset the contents of this < code > FastByteArrayOutputStream < / code > .
* Reset the contents of this { @code FastByteArrayOutputStream } .
* < p > All currently accumulated output in the output stream is discarded .
* The output stream can be used again .
* /
@ -242,19 +243,21 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -242,19 +243,21 @@ public class FastByteArrayOutputStream extends OutputStream {
}
/ * *
* Get an { @link InputStream } to retrieve the data in this OutputStream .
* < p > Note that if any methods are called on the OutputStream
* Get an { @link InputStream } to retrieve the contents of this
* { @code FastByteArrayOutputStream } .
* < p > Note that if any methods are called on this { @code FastByteArrayOutputStream }
* ( including , but not limited to , any of the write methods , { @link # reset ( ) } ,
* { @link # toByteArray ( ) } , and { @link # toByteArrayUnsafe ( ) } ) then the
* { @link java . io . InputStream } ' s behavior is undefined .
* @return { @link InputStream } of the contents of this OutputStream
* { @code InputStream } ' s behavior is undefined .
* @return { @code InputStream } of the contents of this { @code FastByteArray OutputStream}
* /
public InputStream getInputStream ( ) {
return new FastByteArrayInputStream ( this ) ;
}
/ * *
* Write the buffers content to the given OutputStream .
* Write the contents of this { @code FastByteArrayOutputStream } to the given
* { @link OutputStream } .
* @param out the OutputStream to write to
* /
public void writeTo ( OutputStream out ) throws IOException {
@ -271,7 +274,7 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -271,7 +274,7 @@ public class FastByteArrayOutputStream extends OutputStream {
}
/ * *
* Resize the internal buffer size to a specified capacity .
* Resize the internal buffer size to the specified capacity .
* @param 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
@ -340,7 +343,7 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -340,7 +343,7 @@ public class FastByteArrayOutputStream extends OutputStream {
/ * *
* An implementation of { @link java . io . InputStream } that reads from a given
* < code > FastByteArrayOutputStream < / code > .
* { @code FastByteArrayOutputStream } .
* /
private static final class FastByteArrayInputStream extends UpdateMessageDigestInputStream {
@ -358,8 +361,8 @@ public class FastByteArrayOutputStream extends OutputStream {
@@ -358,8 +361,8 @@ public class FastByteArrayOutputStream extends OutputStream {
private int totalBytesRead = 0 ;
/ * *
* Create a new < code > FastByteArrayOutputStreamInputStream < / code > backed
* by the given < code > FastByteArrayOutputStream < / code > .
* Create a new { @code FastByteArrayInputStream } backed by the given
* { @code FastByteArrayOutputStream } .
* /
public FastByteArrayInputStream ( FastByteArrayOutputStream fastByteArrayOutputStream ) {
this . fastByteArrayOutputStream = fastByteArrayOutputStream ;