Class ClobLocatorOutputStream

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

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

    Closing a ByteArrayInputStream 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).

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private ClientClob clob
      The Clob to be accessed.
      private long currentPos
      Current position in the underlying Clob.
    • Constructor Summary

      Constructors 
      Constructor Description
      ClobLocatorOutputStream​(ClientClob clob, long pos)
      Create an OutputStream for writing to the Clob value represented by the given locator based Clob object.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void flush()  
      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 Clob value on the server; starting from the current position of this stream.
      • Methods inherited from class java.io.OutputStream

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

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

      • clob

        private final ClientClob clob
        The Clob to be accessed.
      • currentPos

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

      • ClobLocatorOutputStream

        ClobLocatorOutputStream​(ClientClob clob,
                                long pos)
                         throws SqlException
        Create an OutputStream for writing to the Clob value represented by the given locator based Clob object.
        Parameters:
        clob - Clob object that contains locator for the Clob value on the server.
        pos - the position in the CLOB 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)
      • flush

        public void flush()
        Specified by:
        flush in interface java.io.Flushable
        Overrides:
        flush in class java.io.OutputStream
        See Also:
        OutputStream.flush()
      • writeBytes

        private void writeBytes​(byte[] b)
                         throws java.io.IOException
        Write the byte[] to the Clob 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.