public class ContentLengthOutputStream extends OutputStream
Content-Length header
.
Entities transferred using this stream can be maximum Long.MAX_VALUE
long.
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 boolean |
closed
True if the stream is closed.
|
private long |
contentLength
The maximum number of bytes that can be written the stream.
|
private SessionOutputBuffer |
out
Wrapped session output buffer.
|
private long |
total
Total bytes written
|
Constructor and Description |
---|
ContentLengthOutputStream(SessionOutputBuffer out,
long contentLength)
Wraps a session output buffer and cuts off output after a defined number
of bytes.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Does not close the underlying socket output.
|
void |
flush() |
void |
write(byte[] b) |
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
private final SessionOutputBuffer out
private final long contentLength
private long total
private boolean closed
public ContentLengthOutputStream(SessionOutputBuffer out, long contentLength)
out
- The session output buffercontentLength
- The maximum number of bytes that can be written to
the stream. Subsequent write operations will be ignored.public void close() throws IOException
Does not close the underlying socket output.
close
in interface Closeable
close
in interface AutoCloseable
close
in class OutputStream
IOException
- If an I/O problem occurs.public void flush() throws IOException
flush
in interface Flushable
flush
in class OutputStream
IOException
public void write(byte[] b, int off, int len) throws IOException
write
in class OutputStream
IOException
public void write(byte[] b) throws IOException
write
in class OutputStream
IOException
public void write(int b) throws IOException
write
in class OutputStream
IOException
WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses