SocketOutputStream
Date: 2016-06-23

org.apache.commons.net.io

## Class SocketOutputStream

- java.lang.Object
- - java.io.OutputStream
  - - java.io.FilterOutputStream
    - - org.apache.commons.net.io.SocketOutputStream

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

      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.
  See Also:
    `SocketInputStream`

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterOutputStream

      `out`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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(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.
      Overrides:
        `write` in class `java.io.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:
        `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.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.FilterOutputStream`
      Throws:
        `java.io.IOException` - If there is an error in closing the stream or socket.