Class 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.

    • 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 Detail

      • LineOrientedOutputStream

        public LineOrientedOutputStream()
    • Method Detail

      • 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.