Package org.apache.hc.core5.http.impl.io
Class ChunkedOutputStream
java.lang.Object
java.io.OutputStream
org.apache.hc.core5.http.impl.io.ChunkedOutputStream
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
Implements chunked transfer coding. The content is sent in small chunks.
Entities transferred using this output stream can be of unlimited length.
Writes are buffered to an internal buffer (2048 default size).
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
ConstructorsConstructorDescriptionChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, byte[] chunkCache, Supplier<List<? extends Header>> trailerSupplier) Default constructor.ChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, int chunkSizeHint) Constructor with no trailers.ChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, int chunkSizeHint, Supplier<List<? extends Header>> trailerSupplier) Constructor taking an integer chunk size hint. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Finishes writing to the underlying stream, but does NOT close the underlying stream.voidfinish()Must be called to ensure the internal cache is flushed and the closing chunk is written.voidflush()Flushes the content buffer and the underlying stream.voidwrite(byte[] b) Writes the array.voidwrite(byte[] src, int off, int len) Writes the array.voidwrite(int b)
-
Constructor Details
-
ChunkedOutputStream
public ChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, byte[] chunkCache, Supplier<List<? extends Header>> trailerSupplier) Default constructor.- Parameters:
buffer- Session output bufferoutputStream- Output streamchunkCache- Buffer used to aggregate smaller writes into chunks.trailerSupplier- Trailer supplier. May benull- Since:
- 5.1
-
ChunkedOutputStream
public ChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, int chunkSizeHint, Supplier<List<? extends Header>> trailerSupplier) Constructor taking an integer chunk size hint.- Parameters:
buffer- Session output bufferoutputStream- Output streamchunkSizeHint- minimal chunk size hinttrailerSupplier- Trailer supplier. May benull- Since:
- 5.0
-
ChunkedOutputStream
public ChunkedOutputStream(SessionOutputBuffer buffer, OutputStream outputStream, int chunkSizeHint) Constructor with no trailers.- Parameters:
buffer- Session output bufferoutputStream- Output streamchunkSizeHint- minimal chunk size hint
-
-
Method Details
-
finish
Must be called to ensure the internal cache is flushed and the closing chunk is written.- Throws:
IOException- in case of an I/O error
-
write
- Specified by:
writein classOutputStream- Throws:
IOException
-
write
Writes the array. If the array does not fit within the buffer, it is not split, but rather written out as one large chunk.- Overrides:
writein classOutputStream- Throws:
IOException
-
write
Writes the array. If the array does not fit within the buffer, it is not split, but rather written out as one large chunk.- Overrides:
writein classOutputStream- Throws:
IOException
-
flush
Flushes the content buffer and the underlying stream.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classOutputStream- Throws:
IOException
-
close
Finishes writing to the underlying stream, but does NOT close the underlying stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classOutputStream- Throws:
IOException
-