## org.apache.http.impl.io
Class ContentLengthOutputStream

    java.lang.Object
      java.io.OutputStream
          org.apache.http.impl.io.ContentLengthOutputStream

All Implemented Interfaces:
  Closeable, Flushable

    @NotThreadSafe
    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

Constructor Summary
`ContentLengthOutputStream(SessionOutputBuffer out, long contentLength)` Wraps a session output buffer and cuts off output after a defined number of bytes.

Method Summary
`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)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### 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 Detail

### close

    public void close()
               throws IOException

  Does not close the underlying socket output.

  Specified by:
    `close` in interface `Closeable`
  Overrides:
    `close` in class `OutputStream`
  Throws:
    `IOException` - If an I/O problem occurs.

### flush

    public void flush()
               throws IOException

  Specified by:
    `flush` in interface `Flushable`
  Overrides:
    `flush` in class `OutputStream`
  Throws:
    `IOException`

### write

    public void write(byte[] b,
                      int off,
                      int len)
               throws IOException

  Overrides:
    `write` in class `OutputStream`
  Throws:
    `IOException`

### write

    public void write(byte[] b)
               throws IOException

  Overrides:
    `write` in class `OutputStream`
  Throws:
    `IOException`

### write

    public void write(int b)
               throws IOException

  Specified by:
    `write` in class `OutputStream`
  Throws:
    `IOException`

Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.