Class 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 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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.io.OutputStream

        nullOutputStream
      • 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.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterOutputStream
        Throws:
        java.io.IOException - If there is an error in closing the stream or socket.