org.apache.commons.io.output
public class DeferredFileOutputStream extends ThresholdingOutputStream
This class originated in FileUpload processing. In this use case, you do not know in advance the size of the file being uploaded. If the file is small you want to store it in memory (for speed), but if the file is large you want to store it to file (to avoid memory issues).
Version: $Id: DeferredFileOutputStream.java 437567 2006-08-28 06:39:07Z bayard $
Field Summary | |
---|---|
boolean | closed
True when close() has been called successfully. |
OutputStream | currentOutputStream
The output stream to which data will be written at any given time. |
ByteArrayOutputStream | memoryOutputStream
The output stream to which data will be written prior to the theshold
being reached. |
File | outputFile
The file to which output will be directed if the threshold is exceeded. |
Constructor Summary | |
---|---|
DeferredFileOutputStream(int threshold, File outputFile)
Constructs an instance of this class which will trigger an event at the
specified threshold, and save data to a file beyond that point.
|
Method Summary | |
---|---|
void | close()
Closes underlying output stream, and mark this as closed
|
byte[] | getData()
Returns the data for this output stream as an array of bytes, assuming
that the data has been retained in memory. |
File | getFile()
Returns the same output file specified in the constructor, even when
threashold has not been reached.
|
protected OutputStream | getStream()
Returns the current output stream. |
boolean | isInMemory()
Determines whether or not the data for this output stream has been
retained in memory.
|
protected void | thresholdReached()
Switches the underlying output stream from a memory based stream to one
that is backed by disk. |
void | writeTo(OutputStream out)
Writes the data from this output stream to the specified output stream,
after it has been closed.
|
memoryOutputStream
or
diskOutputStream
.Parameters: threshold The number of bytes at which to trigger an event. outputFile The file to which data is saved beyond the threshold.
Throws: IOException if an error occurs.
null
.
Returns: The data for this output stream, or null
if no such
data is available.
Returns: The file for this output stream, or null
if no such
file exists.
Returns: The underlying output stream.
Throws: IOException if an error occurs.
Returns: true
if the data is available in memory;
false
otherwise.
Throws: IOException if an error occurs.
Parameters: out output stream to write to.
Throws: IOException if this stream is not yet closed or an error occurs.