Class DelegatingOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.eclipse.net4j.util.io.DelegatingOutputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
- Direct Known Subclasses:
XOROutputStream
public class DelegatingOutputStream extends java.io.OutputStream
This class is the superclass of all classes that filter output streams. These streams sit on top of an already existing output stream (the underlying output stream) which it uses as its basic sink of data, but possibly transforming the data along the way or providing additional functionality.The class
DelegatingOutputStream
itself simply overrides all methods ofOutputStream
with versions that pass all requests to the underlying output stream. Subclasses ofDelegatingOutputStream
may further override some of these methods as well as provide additional methods and fields.Note: The only difference to
FilterOutputStream
is thatDelegatingOutputStream
does not overrideOutputStream.write(byte[])
orOutputStream.write(byte[], int, int)
but rather exposes the original implementations ofInputStream
which callwrite(int)
instead of their delegate counterparts.- Author:
- Eike Stepper
-
-
Field Summary
Fields Modifier and Type Field Description protected java.io.OutputStream
out
The underlying output stream to be filtered.
-
Constructor Summary
Constructors Constructor Description DelegatingOutputStream(java.io.OutputStream out)
Creates an output stream filter built on top of the specified underlying output stream.
-
Method Summary
All Methods Instance Methods Concrete Methods 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.java.io.OutputStream
getDelegate()
void
write(int b)
Writes the specifiedbyte
to this output stream.
-
-
-
Constructor Detail
-
DelegatingOutputStream
public DelegatingOutputStream(java.io.OutputStream out)
Creates an output stream filter built on top of the specified underlying output stream.- Parameters:
out
- the underlying output stream to be assigned to the field this.out for later use, ornull
if this instance is to be created without an underlying stream.
-
-
Method Detail
-
getDelegate
public java.io.OutputStream getDelegate()
-
write
public void write(int b) throws java.io.IOException
Writes the specifiedbyte
to this output stream.The
write
method ofDelegatingOutputStream
calls thewrite
method of its underlying output stream, that is, it performs out.write(b).Implements the abstract write method of OutputStream.
- Specified by:
write
in classjava.io.OutputStream
- Parameters:
b
- thebyte
.- Throws:
java.io.IOException
- if an I/O error occurs.
-
flush
public void flush() throws java.io.IOException
Flushes this output stream and forces any buffered output bytes to be written out to the stream.The
flush
method ofDelegatingOutputStream
calls theflush
method of its underlying output stream.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.OutputStream
- Throws:
java.io.IOException
- if an I/O error occurs.- See Also:
out
-
close
public void close() throws java.io.IOException
Closes this output stream and releases any system resources associated with the stream.The
close
method ofDelegatingOutputStream
calls itsflush
method, and then calls theclose
method of its underlying output stream.
-
-