org.apache.http.impl.io
Class ContentLengthOutputStream

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

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–2020 The Apache Software Foundation. All rights reserved.