Package org.apache.http.impl.io
Class ContentLengthOutputStream
java.lang.Object
java.io.OutputStream
org.apache.http.impl.io.ContentLengthOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
Output stream that cuts off after a defined number of bytes. This class
is used to send content of HTTP messages where the end of the content entity
is determined by the value of the
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.
- Since:
- 4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanTrue if the stream is closed.private final longThe maximum number of bytes that can be written the stream.private final SessionOutputBufferWrapped session output buffer.private longTotal bytes written -
Constructor Summary
ConstructorsConstructorDescriptionContentLengthOutputStream(SessionOutputBuffer out, long contentLength) Wraps a session output buffer and cuts off output after a defined number of bytes. -
Method Summary
Methods inherited from class java.io.OutputStream
nullOutputStream
-
Field Details
-
out
Wrapped session output buffer. -
contentLength
private final long contentLengthThe maximum number of bytes that can be written the stream. Subsequent write operations will be ignored. -
total
private long totalTotal bytes written -
closed
private boolean closedTrue if the stream is closed.
-
-
Constructor Details
-
ContentLengthOutputStream
Wraps a session output buffer and cuts off output after a defined number of bytes.- Parameters:
out- The session output buffercontentLength- The maximum number of bytes that can be written to the stream. Subsequent write operations will be ignored.- Since:
- 4.0
-
-
Method Details
-
close
Does not close the underlying socket output.
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException- If an I/O problem occurs.
-
flush
- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- Throws:
IOException
-
write
- Overrides:
writein classOutputStream- Throws:
IOException
-
write
- Overrides:
writein classOutputStream- Throws:
IOException
-
write
- Specified by:
writein classOutputStream- Throws:
IOException
-