Package org.apache.tools.ant.util

# Class LineOrientedOutputStream

java.lang.Object
java.io.OutputStream
org.apache.tools.ant.util.LineOrientedOutputStream

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

Direct Known Subclasses:
  `LineOrientedOutputStreamRedirector`, `LogOutputStream`

    public abstract class LineOrientedOutputStream
    extends java.io.OutputStream

Invokes `processLine` whenever a full line has been written to this stream.

Tries to be smart about line separators.

- ## Constructor Summary

  Constructors
  Constructor | Description
  --- | ---
  `LineOrientedOutputStream()` |

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `void` | `close()` | Writes all remaining
  `void` | `flush()` | Flush this log stream
  `protected void` | `processBuffer()` | Converts the buffer to a byte[] and sends it to `processLine`
  `protected void` | `processLine​(byte[] line)` | Processes a line.
  `protected abstract void` | `processLine​(java.lang.String line)` | Processes a line.
  `void` | `write​(byte[] b, int off, int len)` | Write a block of characters to the output stream
  `void` | `write​(int cc)` | Write the data to the buffer and flush the buffer, if a line separator is detected.

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

  `nullOutputStream, write`

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

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

- ## Constructor Details

  - ### LineOrientedOutputStream

    public LineOrientedOutputStream()

- ## Method Details

  - ### write

    public final void write​(int cc) throws java.io.IOException
    Write the data to the buffer and flush the buffer, if a line separator is detected.
    Specified by:
      `write` in class `java.io.OutputStream`
    Parameters:
      `cc` - data to log (byte).
    Throws:
      `java.io.IOException` - if there is an error.

  - ### flush

    public void flush() throws java.io.IOException
    Flush this log stream
    Specified by:
      `flush` in interface `java.io.Flushable`
    Overrides:
      `flush` in class `java.io.OutputStream`
    Throws:
      `java.io.IOException` - if there is an error.

  - ### processBuffer

    protected void processBuffer() throws java.io.IOException
    Converts the buffer to a byte[] and sends it to `processLine`
    Throws:
      `java.io.IOException` - if there is an error.

  - ### processLine

    protected abstract void processLine​(java.lang.String line) throws java.io.IOException
    Processes a line.
    Parameters:
      `line` - the line to log.
    Throws:
      `java.io.IOException` - if there is an error.

  - ### processLine

    protected void processLine​(byte[] line) throws java.io.IOException
    Processes a line.

    This implementations invokes the string-arg version converting the byte array using the default encoding. Subclasses are encouraged to override this method (and provide a dummy implementation of the String-arg version) so they don't interfere with the encoding of the underlying stream.

    Parameters:
      `line` - the line to log.
    Throws:
      `java.io.IOException` - if there is an error.
    Since:
      Ant 1.8.3

  - ### close

    public void close() throws java.io.IOException
    Writes all remaining
    Specified by:
      `close` in interface `java.lang.AutoCloseable`
    Specified by:
      `close` in interface `java.io.Closeable`
    Overrides:
      `close` in class `java.io.OutputStream`
    Throws:
      `java.io.IOException` - if there is an error.

  - ### write

    public final void write​(byte[] b, int off, int len) throws java.io.IOException
    Write a block of characters to the output stream
    Overrides:
      `write` in class `java.io.OutputStream`
    Parameters:
      `b` - the array containing the data
      `off` - the offset into the array where data starts
      `len` - the length of block
    Throws:
      `java.io.IOException` - if the data cannot be written into the stream.