public class ContentLengthOutputStream
extends java.io.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 java.io.IOException
Does not close the underlying socket output.
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.OutputStream
java.io.IOException
- If an I/O problem occurs.public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
public void write(byte[] b, int off, int len) 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(int b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException