Package ghidra.util

# Class MonitoredOutputStream

java.lang.Object
java.io.OutputStream
ghidra.util.MonitoredOutputStream

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

public class MonitoredOutputStream extends OutputStream
An OutputStream which utilizes a TaskMonitor to indicate output progress and allows the operation to be cancelled via the TaskMonitor.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected OutputStream`
  `out`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MonitoredOutputStream(OutputStream out, TaskMonitor monitor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `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.io.OutputStream

  `nullOutputStream`

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

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

- ## Field Details

  - ### out

    protected OutputStream out

- ## Constructor Details

  - ### MonitoredOutputStream

    public MonitoredOutputStream(OutputStream out, TaskMonitor monitor)

- ## Method Details

  - ### write

    public void write(int b) throws IOException
    Writes the specified `byte` to this output stream.

    The `write` method of `FilterOutputStream` calls the `write` method of its underlying output stream, that is, it performs `out.write(b)`.

    Implements the abstract `write` method of `OutputStream`.

    Specified by:
      `write` in class `OutputStream`
    Parameters:
      `b` - the `byte`.
    Throws:
      `IOException` - if an I/O error occurs.

  - ### write

    public void write(byte[] b) throws IOException
    Writes `b.length` bytes to this output stream.

    The `write` method of `FilterOutputStream` calls its `write` method of three arguments with the arguments `b`, `0`, and `b.length`.

    Note that this method does not call the one-argument `write` method of its underlying stream with the single argument `b`.

    Overrides:
      `write` in class `OutputStream`
    Parameters:
      `b` - the data to be written.
    Throws:
      `IOException` - if an I/O error occurs.
    See Also:
      - `FilterOutputStream.write(byte[], int, int)`

  - ### write

    public void write(byte[] b, int off, int len) throws IOException
    Writes `len` bytes from the specified `byte` array starting at offset `off` to this output stream.

    The `write` method of `FilterOutputStream` calls the `write` method of one argument on each `byte` to output.

    Note that this method does not call the `write` method of its underlying input stream with the same arguments. Subclasses of `FilterOutputStream` should provide a more efficient implementation of this method.

    Overrides:
      `write` in class `OutputStream`
    Parameters:
      `b` - the data.
      `off` - the start offset in the data.
      `len` - the number of bytes to write.
    Throws:
      `IOException` - if an I/O error occurs.
    See Also:
      - `FilterOutputStream.write(int)`

  - ### flush

    public void flush() throws IOException
    Flushes this output stream and forces any buffered output bytes to be written out to the stream.

    The `flush` method of `FilterOutputStream` calls the `flush` method of its underlying output stream.

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

  - ### close

    public void close() throws IOException
    Closes this output stream and releases any system resources associated with the stream.

    The `close` method of `FilterOutputStream` calls its `flush` method, and then calls the `close` method of its underlying output stream.

    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Overrides:
      `close` in class `OutputStream`
    Throws:
      `IOException` - if an I/O error occurs.
    See Also:
      - `FilterOutputStream.flush()`