Package org.jboss.resteasy.plugins.server.netty

## Class ChunkOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - org.jboss.resteasy.spi.AsyncOutputStream
    - - org.jboss.resteasy.plugins.server.netty.ChunkOutputStream

- All Implemented Interfaces:
    `Closeable`, `Flushable`, `AutoCloseable`

      public class ChunkOutputStream
      extends AsyncOutputStream

  Class to help application that are built to write to an OutputStream to chunk the content

       DefaultHttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
       HttpHeaders.setTransferEncodingChunked(response);
       response.headers().set(CONTENT_TYPE, "application/octet-stream");
       //other headers
       ctx.write(response);
       // code of the application that use the ChunkOutputStream
       // Don't forget to close the ChunkOutputStream after use!
       ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT).addListener(ChannelFutureListener.CLOSE);

  Author:
    tbussier

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `CompletionStage<Void>` | `asyncFlush()` | Flushes this async output stream.
    `CompletionStage<Void>` | `asyncWrite​(byte[] bytes, int offset, int length)` | Writes to this async output stream.
    `void` | `close()` |
    `void` | `flush()` |
    `void` | `reset()` |
    `void` | `write​(byte[] b, int off, int len)` |
    `void` | `write​(int b)` |

    - ### Methods inherited from class org.jboss.resteasy.spi.AsyncOutputStream

      `asyncWrite`

    - ### Methods inherited from class java.io.OutputStream

      `write`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### write

          public void write​(int b)
                     throws IOException

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

    - #### reset

          public void reset()

    - #### close

          public void close()
                     throws IOException

      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in interface `Closeable`
      Overrides:
        `close` in class `OutputStream`
      Throws:
        `IOException`

    - #### write

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

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

    - #### flush

          public void flush()
                     throws IOException

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

    - #### asyncFlush

          public CompletionStage<Void> asyncFlush()

      Description copied from class: `AsyncOutputStream`
      Flushes this async output stream.
      Specified by:
        `asyncFlush` in class `AsyncOutputStream`
      Returns:
        a `CompletionStage` notified on completion of the flush operation.

    - #### asyncWrite

          public CompletionStage<Void> asyncWrite​(byte[] bytes,
                                                  int offset,
                                                  int length)

      Description copied from class: `AsyncOutputStream`
      Writes to this async output stream.
      Specified by:
        `asyncWrite` in class `AsyncOutputStream`
      Parameters:
        `bytes` - the bytes to write
        `offset` - the offset from which to start writing in the given byte array.
        `length` - the number of bytes to write from the given byte array
      Returns:
        a `CompletionStage` notified on completion of the write operation.