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.OutputStreamThis 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
DelegatingOutputStreamitself simply overrides all methods ofOutputStreamwith versions that pass all requests to the underlying output stream. Subclasses ofDelegatingOutputStreammay further override some of these methods as well as provide additional methods and fields.Note: The only difference to
FilterOutputStreamis thatDelegatingOutputStreamdoes not overrideOutputStream.write(byte[])orOutputStream.write(byte[], int, int)but rather exposes the original implementations ofInputStreamwhich callwrite(int)instead of their delegate counterparts.- Author:
- Eike Stepper
-
-
Field Summary
Fields Modifier and Type Field Description protected java.io.OutputStreamoutThe 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 voidclose()Closes this output stream and releases any system resources associated with the stream.voidflush()Flushes this output stream and forces any buffered output bytes to be written out to the stream.java.io.OutputStreamgetDelegate()voidwrite(int b)Writes the specifiedbyteto 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, ornullif 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.IOExceptionWrites the specifiedbyteto this output stream.The
writemethod ofDelegatingOutputStreamcalls thewritemethod of its underlying output stream, that is, it performs out.write(b).Implements the abstract write method of OutputStream.
- Specified by:
writein classjava.io.OutputStream- Parameters:
b- thebyte.- Throws:
java.io.IOException- if an I/O error occurs.
-
flush
public void flush() throws java.io.IOExceptionFlushes this output stream and forces any buffered output bytes to be written out to the stream.The
flushmethod ofDelegatingOutputStreamcalls theflushmethod of its underlying output stream.- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.OutputStream- Throws:
java.io.IOException- if an I/O error occurs.- See Also:
out
-
close
public void close() throws java.io.IOExceptionCloses this output stream and releases any system resources associated with the stream.The
closemethod ofDelegatingOutputStreamcalls itsflushmethod, and then calls theclosemethod of its underlying output stream.
-
-