org.apache.commons.net.io
Class SocketOutputStream

java.lang.Object
  extended byjava.io.OutputStream
      extended byjava.io.FilterOutputStream
          extended byorg.apache.commons.net.io.SocketOutputStream

public class SocketOutputStream
extends java.io.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  java.net.Socket __socket
           
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
SocketOutputStream(java.net.Socket socket, java.io.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(byte[] buffer, int offset, int length)
          Writes a number of bytes from a byte array to the stream starting from a given offset.
 
Methods inherited from class java.io.FilterOutputStream
flush, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

__socket

private java.net.Socket __socket
Constructor Detail

SocketOutputStream

public SocketOutputStream(java.net.Socket socket,
                          java.io.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

write

public void write(byte[] buffer,
                  int offset,
                  int length)
           throws java.io.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:
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:
java.io.IOException - If an error occurs while writing to the underlying stream.

close

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

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