# IOSink class

A combined byte and text output.

An IOSink combines a StreamSink of bytes with a StringSink, and allows easy output of both bytes and text.

Writing text (write) and adding bytes (add) may be interleaved freely.

While a stream is being added using addStream, any further attempts to add or write to the IOSink will fail until the addStream completes.

It is an error to add data to the IOSink after the sink is closed.

Implements
  - StreamSink<List<int>>
  - StringSink
Implemented by
  - HttpClientRequest
  - HttpResponse
  - Socket
  - Stdout

## Constructors

IOSink(StreamConsumer<List<int>> target, { Encoding encoding: utf8 })
  Create an IOSink that outputs to a `target` StreamConsumer of bytes. [...]
  factory

## Properties

done → Future
  Get a future that will complete when the consumer closes, or when an error occurs. This future is identical to the future returned by close.
  read-only
encoding ↔ Encoding
  The `Encoding` used when writing strings. Depending on the underlying consumer this property might be mutable.
  read / write
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

add(List<int> data) → void
  Adds byte `data` to the target consumer, ignoring encoding. [...]
addError(Object error, [ StackTrace stackTrace ]) → void
  Passes the error to the target consumer as an error event. [...]
addStream(Stream<List<int>> stream) → Future
  Adds all elements of the given `stream` to `this`. [...]
close() → Future
  Close the target consumer. [...]
flush() → Future
  Returns a Future that completes once all buffered data is accepted by the underlying StreamConsumer. [...]
write(Object obj) → void
  Converts `obj` to a String by invoking Object.toString and adds the encoding of the result to the target consumer. [...]
writeAll(Iterable objects, [ String separator = "" ]) → void
  Iterates over the given `objects` and writes them in sequence. [...]
writeCharCode(int charCode) → void
  Writes the character of `charCode`. [...]
writeln([Object obj = "" ]) → void
  Converts `obj` to a String by invoking Object.toString and writes the result to `this`, followed by a newline. [...]
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
toString() → String
  Returns a string representation of this object.
  inherited

## Operators

operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited