Class ContentLengthOutputStream

java.lang.Object
java.io.OutputStream
org.apache.http.impl.io.ContentLengthOutputStream
All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

public class ContentLengthOutputStream extends OutputStream
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 Details

    • out

      private final SessionOutputBuffer out
      Wrapped session output buffer.
    • contentLength

      private final long contentLength
      The maximum number of bytes that can be written the stream. Subsequent write operations will be ignored.
    • total

      private long total
      Total bytes written
    • closed

      private boolean closed
      True if the stream is closed.
  • Constructor Details

    • ContentLengthOutputStream

      public ContentLengthOutputStream(SessionOutputBuffer out, long contentLength)
      Wraps a session output buffer and cuts off output after a defined number of bytes.
      Parameters:
      out - The session output buffer
      contentLength - The maximum number of bytes that can be written to the stream. Subsequent write operations will be ignored.
      Since:
      4.0
  • Method Details