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.

See Also:
SocketInputStream

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

@Override
void close()
Closes the stream and immediately afterward closes the referenced socket.
@Override
void write(buffer[] , int offset, int length)
Writes a number of bytes from a byte array to the stream starting from a given offset.

Constructor Details

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 Details

void close

public @Override void close()
            throws IOException
Closes the stream and immediately afterward closes the referenced socket.


void write

public @Override void write(buffer[] ,
                            int offset,
                            int length)
            throws IOException
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:
offset - The offset into the array at which to start copying data.
length - The number of bytes to write.