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:
SocketInputStream

Field Summary

private Socket
__socket

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

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

Field Details

__socket

private Socket __socket

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

close

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


write

public 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.