org.apache.commons.net.io
Class SocketOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by org.apache.commons.net.io.SocketOutputStream
All Implemented Interfaces:
Closeable, Flushable

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
 
Fields inherited from class java.io.FilterOutputStream
out
 
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(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
 

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

write

public void write(byte[] 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.

Overrides:
write in class FilterOutputStream
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.

close

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

Specified by:
close in interface Closeable
Overrides:
close in class FilterOutputStream
Throws:
IOException - If there is an error in closing the stream or socket.


Copyright © 1997-2010 The Apache Software Foundation. All Rights Reserved.