Class BlobLocatorOutputStream

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

    class BlobLocatorOutputStream
    extends java.io.OutputStream
    An OutputStream that will use an locator to write bytes to the Blob value on the server.

    Closing a BlobLocatorOutputStream has no effect. The methods in this class can be called after the stream has been closed without generating an IOException.

    This OutputStream implementation is pretty basic. No buffering of data is done. Hence, for efficiency #write(byte[]) should be used instead of #write(int).

    • Constructor Summary

      Constructors 
      Constructor Description
      BlobLocatorOutputStream​(ClientConnection connection, ClientBlob blob, long pos)
      Create an OutputStream for writing to the Blob value represented by the given locator based Blob object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void write​(byte[] b)  
      void write​(byte[] b, int off, int len)  
      void write​(int b)  
      private void writeBytes​(byte[] b)
      Write the byte[] to the Blob value on the server; starting from the current position of this stream.
      • Methods inherited from class java.io.OutputStream

        close, flush, nullOutputStream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • connection

        private final ClientConnection connection
        Connection used to read Blob from server.
      • blob

        private final ClientBlob blob
        The Blob to be accessed.
      • currentPos

        private long currentPos
        Current position in the underlying Blob. Blobs are indexed from 1
    • Constructor Detail

      • BlobLocatorOutputStream

        BlobLocatorOutputStream​(ClientConnection connection,
                                ClientBlob blob,
                                long pos)
                         throws SqlException
        Create an OutputStream for writing to the Blob value represented by the given locator based Blob object.
        Parameters:
        connection - connection to be used to write to the Blob value on the server
        blob - Blob object that contains locator for the Blob value on the server.
        pos - the position in the BLOB value at which to start writing; the first position is 1
        Throws:
        SqlException
    • Method Detail

      • write

        public void write​(int b)
                   throws java.io.IOException
        Specified by:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
        See Also:
        This method writes one byte at a time to the server. For more efficient writing, use #write(byte[]).
      • write

        public void write​(byte[] b)
                   throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
        See Also:
        OutputStream.write(byte[])
      • write

        public void write​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException
        Overrides:
        write in class java.io.OutputStream
        Throws:
        java.io.IOException
        See Also:
        OutputStream.write(byte[], int, int)
      • writeBytes

        private void writeBytes​(byte[] b)
                         throws java.io.IOException
        Write the byte[] to the Blob value on the server; starting from the current position of this stream.
        Parameters:
        b - The byte array containing the bytes to be written
        Throws:
        java.io.IOException - Wrapped SqlException if writing to server fails.