org.apache.tools.ant.util

Class LineOrientedOutputStream

public abstract class LineOrientedOutputStream extends OutputStream

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

Tries to be smart about line separators.

Method Summary
voidclose()
Writes all remaining
voidflush()
Flush this log stream
protected voidprocessBuffer()
Converts the buffer to a byte[] and sends it to processLine
protected abstract voidprocessLine(String line)
Processes a line.
protected voidprocessLine(byte[] line)
Processes a line.
voidwrite(int cc)
Write the data to the buffer and flush the buffer, if a line separator is detected.
voidwrite(byte[] b, int off, int len)
Write a block of characters to the output stream

Method Detail

close

public void close()
Writes all remaining

Throws: IOException if there is an error.

flush

public void flush()
Flush this log stream

Throws: IOException if there is an error.

processBuffer

protected void processBuffer()
Converts the buffer to a byte[] and sends it to processLine

Throws: IOException if there is an error.

processLine

protected abstract void processLine(String line)
Processes a line.

Parameters: line the line to log.

Throws: IOException if there is an error.

processLine

protected void processLine(byte[] line)
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: IOException if there is an error.

Since: Ant 1.8.3

write

public final void write(int cc)
Write the data to the buffer and flush the buffer, if a line separator is detected.

Parameters: cc data to log (byte).

Throws: IOException if there is an error.

write

public final void write(byte[] b, int off, int len)
Write a block of characters to the output stream

Parameters: b the array containing the data off the offset into the array where data starts len the length of block

Throws: IOException if the data cannot be written into the stream.