com.pixelmed.dicom

## Class AsynchronousOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - com.pixelmed.dicom.AsynchronousOutputStream

All Implemented Interfaces:
  java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class AsynchronousOutputStream
    extends java.io.FilterOutputStream

A class that extends `FilterOutputStream` by creating a separate thread to actually perform the output operations, and returning immediately from write calls, but blocking on closing.

### Field Summary

### Fields inherited from class java.io.FilterOutputStream

`out`

### Constructor Summary

Constructors
Constructor and Description
`AsynchronousOutputStream(java.io.OutputStream out)`

### Method Summary

Methods
`void` `close()` Closes this output stream and releases any system resources associated with the stream.
`void` `flush()` Flushes this output stream and forces any buffered output bytes to be written out to the stream.
`void` `write(byte[] b)` Writes `b.length` bytes to this output stream.
`void` `write(byte[] b, int off, int len)` Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.
`void` `write(int b)` Writes the specified `byte` to this output stream.

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

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

### Constructor Detail

#### AsynchronousOutputStream

    public AsynchronousOutputStream(java.io.OutputStream out)

Parameters:
  `out` - the `OutputStream` to write to

### Method Detail

#### write

    public void write(byte[] b,
             int off,
             int len)
               throws java.io.IOException

Writes `len` bytes from the specified byte array starting at offset `off` to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `b` - the data.
  `off` - the start offset in the data.
  `len` - the number of bytes to write.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### write

    public void write(int b)
               throws java.io.IOException

Writes the specified `byte` to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `b` - the `byte`.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### write

    public void write(byte[] b)
               throws java.io.IOException

Writes `b.length` bytes to this output stream.

Overrides:
  `write` in class `java.io.FilterOutputStream`
Parameters:
  `b` - the data to be written.
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### flush

    public void flush()
               throws java.io.IOException

Flushes this output stream and forces any buffered output bytes to be written out to the stream.

Specified by:
  `flush` in interface `java.io.Flushable`
Overrides:
  `flush` in class `java.io.FilterOutputStream`
Throws:
  `java.io.IOException` - if an I/O error occurs.

#### close

    public void close()
               throws java.io.IOException

Closes this output stream and releases any system resources associated with the stream.

Specified by:
  `close` in interface `java.io.Closeable`
Specified by:
  `close` in interface `java.lang.AutoCloseable`
Overrides:
  `close` in class `java.io.FilterOutputStream`
Throws:
  `java.io.IOException` - if an I/O error occurs.