org.apache.tools.ant.utilClass 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
InvokesprocessLine
whenever a full line has been written to this stream.Tries to be smart about line separators.
Constructor Summary
Constructors Constructor and Description LineOrientedOutputStream()
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method and Description void
close()
Writes all remainingvoid
flush()
Flush this log streamprotected void
processBuffer()
Converts the buffer to a byte[] and sends it toprocessLine
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 streamvoid
write(int cc)
Write the data to the buffer and flush the buffer, if a line separator is detected.
Method Detail
write
public final void write(int cc) throws java.io.IOExceptionWrite the data to the buffer and flush the buffer, if a line separator is detected.
- Specified by:
write
in classjava.io.OutputStream
- Parameters:
cc
- data to log (byte).- Throws:
java.io.IOException
- if there is an error.
flush
public void flush() throws java.io.IOExceptionFlush this log stream
- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- if there is an error.
processBuffer
protected void processBuffer() throws java.io.IOExceptionConverts the buffer to a byte[] and sends it toprocessLine
- Throws:
java.io.IOException
- if there is an error.
processLine
protected abstract void processLine(java.lang.String line) throws java.io.IOExceptionProcesses 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.IOExceptionProcesses 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.IOExceptionWrites all remaining
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Overrides:
close
in classjava.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.IOExceptionWrite a block of characters to the output stream
- Overrides:
write
in classjava.io.OutputStream
- Parameters:
b
- the array containing the dataoff
- the offset into the array where data startslen
- the length of block- Throws:
java.io.IOException
- if the data cannot be written into the stream.