Package com.google.android.exoplayer2.upstream

## Interface DataSink

- All Known Implementing Classes:
    `AesCipherDataSink`, `ByteArrayDataSink`, `CacheDataSink`, `FailOnCloseDataSink`

      public interface DataSink

  A component to which streams of data can be written.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static interface` | `DataSink.Factory` | A factory for `DataSink` instances.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes the sink.
    `void` | `open​(DataSpec dataSpec)` | Opens the sink to consume the specified data.
    `void` | `write​(byte[] buffer, int offset, int length)` | Consumes the provided data.

- - ### Method Detail

    - #### open

          void open​(DataSpec dataSpec)
             throws IOException

      Opens the sink to consume the specified data.

      Note: If an `IOException` is thrown, callers must still call `close()` to ensure that any partial effects of the invocation are cleaned up.

      Parameters:
        `dataSpec` - Defines the data to be consumed.
      Throws:
        `IOException` - If an error occurs opening the sink.

    - #### write

          void write​(byte[] buffer,
                     int offset,
                     int length)
              throws IOException

      Consumes the provided data.
      Parameters:
        `buffer` - The buffer from which data should be consumed.
        `offset` - The offset of the data to consume in `buffer`.
        `length` - The length of the data to consume, in bytes.
      Throws:
        `IOException` - If an error occurs writing to the sink.

    - #### close

          void close()
              throws IOException

      Closes the sink.

      Note: This method must be called even if the corresponding call to `open(DataSpec)` threw an `IOException`. See `open(DataSpec)` for more details.

      Throws:
        `IOException` - If an error occurs closing the sink.