Class ContentLengthOutputStream

java.lang.Object
java.io.OutputStream
org.apache.hc.core5.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

    • buffer

      private final SessionOutputBuffer buffer
    • outputStream

      private final OutputStream outputStream
    • 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 buffer, OutputStream outputStream, long contentLength)
      Default constructor.
      Parameters:
      buffer - Session output buffer
      outputStream - Output stream
      contentLength - The maximum number of bytes that can be written to the stream. Subsequent write operations will be ignored.
      Since:
      4.0
  • Method Details