org.apache.commons.net.io

Class SocketOutputStream

public class SocketOutputStream extends FilterOutputStream

This class wraps an output stream, storing a reference to its originating socket. When the stream is closed, it will also close the socket immediately afterward. This class is useful for situations where you are dealing with a stream originating from a socket, but do not have a reference to the socket, and want to make sure it closes when the stream closes.

Author: Daniel F. Savarese

See Also:

Constructor Summary
SocketOutputStream(Socket socket, OutputStream stream)
Creates a SocketOutputStream instance wrapping an output stream and storing a reference to a socket that should be closed on closing the stream.
Method Summary
voidclose()
Closes the stream and immediately afterward closes the referenced socket.
voidwrite(byte[] buffer, int offset, int length)
Writes a number of bytes from a byte array to the stream starting from a given offset.

Constructor Detail

SocketOutputStream

public SocketOutputStream(Socket socket, OutputStream stream)
Creates a SocketOutputStream instance wrapping an output stream and storing a reference to a socket that should be closed on closing the stream.

Parameters: socket The socket to close on closing the stream. stream The input stream to wrap.

Method Detail

close

public void close()
Closes the stream and immediately afterward closes the referenced socket.

Throws: IOException If there is an error in closing the stream or socket.

write

public void write(byte[] buffer, int offset, int length)
Writes a number of bytes from a byte array to the stream starting from a given offset. This method bypasses the equivalent method in FilterOutputStream because the FilterOutputStream implementation is very inefficient.

Parameters: buffer The byte array to write. offset The offset into the array at which to start copying data. length The number of bytes to write.

Throws: IOException If an error occurs while writing to the underlying stream.