public class ChunkedOutputStream
extends java.io.OutputStream
Note that this class NEVER closes the underlying stream, even when close gets called. Instead, the stream will be marked as closed and no further output will be permitted.
Modifier and Type | Field and Description |
---|---|
private byte[] |
cache |
private int |
cachePosition |
private boolean |
closed
True if the stream is closed.
|
private SessionOutputBuffer |
out |
private boolean |
wroteLastChunk |
Constructor and Description |
---|
ChunkedOutputStream(int bufferSize,
SessionOutputBuffer out)
Wraps a session output buffer and chunk-encodes the output.
|
ChunkedOutputStream(SessionOutputBuffer out)
Deprecated.
|
ChunkedOutputStream(SessionOutputBuffer out,
int bufferSize)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Finishes writing to the underlying stream, but does NOT close the underlying stream.
|
void |
finish()
Must be called to ensure the internal cache is flushed and the closing
chunk is written.
|
void |
flush()
Flushes the content buffer and the underlying stream.
|
protected void |
flushCache()
Writes the cache out onto the underlying stream
|
protected void |
flushCacheWithAppend(byte[] bufferToAppend,
int off,
int len)
Writes the cache and bufferToAppend to the underlying stream
as one large chunk
|
void |
write(byte[] b)
Writes the array.
|
void |
write(byte[] src,
int off,
int len)
Writes the array.
|
void |
write(int b) |
protected void |
writeClosingChunk() |
private final SessionOutputBuffer out
private final byte[] cache
private int cachePosition
private boolean wroteLastChunk
private boolean closed
@Deprecated public ChunkedOutputStream(SessionOutputBuffer out, int bufferSize) throws java.io.IOException
ChunkedOutputStream(int, SessionOutputBuffer)
out
- The session output bufferbufferSize
- The minimum chunk size (excluding last chunk)java.io.IOException
- not thrown@Deprecated public ChunkedOutputStream(SessionOutputBuffer out) throws java.io.IOException
ChunkedOutputStream(int, SessionOutputBuffer)
out
- the output buffer to wrapjava.io.IOException
- not thrownpublic ChunkedOutputStream(int bufferSize, SessionOutputBuffer out)
bufferSize
- The minimum chunk size (excluding last chunk)out
- The session output bufferprotected void flushCache() throws java.io.IOException
java.io.IOException
protected void flushCacheWithAppend(byte[] bufferToAppend, int off, int len) throws java.io.IOException
java.io.IOException
protected void writeClosingChunk() throws java.io.IOException
java.io.IOException
public void finish() throws java.io.IOException
java.io.IOException
- in case of an I/O errorpublic void write(int b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void write(byte[] b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void write(byte[] src, int off, int len) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.OutputStream
java.io.IOException