Module org.firebirdsql.jaybird
Package org.firebirdsql.jdbc

# Class FBBlobOutputStream

java.lang.Object
java.io.OutputStream
org.firebirdsql.jdbc.FBBlobOutputStream

All Implemented Interfaces:
  `Closeable`, `Flushable`, `AutoCloseable`, `FirebirdBlob.BlobOutputStream`

@InternalApi public final class FBBlobOutputStream extends OutputStream implements FirebirdBlob.BlobOutputStream
`OutputStream` for writing Firebird blobs.

This class is internal API of Jaybird. Future versions may radically change, move, or make inaccessible this type. For the public API, refer to the `FirebirdBlob.BlobOutputStream` interface.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Close this stream.
  `void`
  `flush()`
  `FirebirdBlob`
  `getBlob()`
  Get instance of `FirebirdBlob` to which this stream belongs to.
  `long`
  `length()`
  Get Blob length.
  `void`
  `write(byte[] b, int off, int len)`
  Write data from the buffer into this stream.
  `void`
  `write(int b)`
  Write single byte into the stream.

  ### Methods inherited from class java.io.OutputStream

  `nullOutputStream, write`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### getBlob

    public FirebirdBlob getBlob()
    Description copied from interface: `FirebirdBlob.BlobOutputStream`
    Get instance of `FirebirdBlob` to which this stream belongs to.

    Note, code

         FirebirdBlob.BlobOutputStream otherStream = (FirebirdBlob.BlobOutputStream)
             inputStream.getBlob().setBinaryStream(1);

    will return new stream object.
    Specified by:
      `getBlob` in interface `FirebirdBlob.BlobOutputStream`
    Returns:
      instance of `FirebirdBlob`.

  - ### length

    public long length() throws IOException
    Description copied from interface: `FirebirdBlob.BlobOutputStream`
    Get Blob length. This method is the only available way to obtain length of a Blob that is in temporary state,
    Specified by:
      `length` in interface `FirebirdBlob.BlobOutputStream`
    Returns:
      length of the blob.
    Throws:
      `IOException` - if I/O error occurs.

  - ### write

    public void write(int b) throws IOException
    Write single byte into the stream.

    Writes are buffered up to the buffer length of the blob (optionally specified by the connection property `blobBufferSize`).

    Specified by:
      `write` in interface `FirebirdBlob.BlobOutputStream`
    Specified by:
      `write` in class `OutputStream`
    Parameters:
      `b` - data to write, only lowest 8 bits are written.
    Throws:
      `IOException` - if I/O error occurs.

  - ### write

    public void write(byte[] b, int off, int len) throws IOException
    Write data from the buffer into this stream.

    Writes are buffered up to the buffer length of the blob (optionally specified by the connection property `blobBufferSize`).

    Specified by:
      `write` in interface `FirebirdBlob.BlobOutputStream`
    Overrides:
      `write` in class `OutputStream`
    Parameters:
      `b` - buffer from which data should be written.
      `off` - offset in the buffer.
      `len` - number of bytes to write.
    Throws:
      `IOException` - if I/O error occurs.

  - ### flush

    public void flush() throws IOException
    Specified by:
      `flush` in interface `Flushable`
    Overrides:
      `flush` in class `OutputStream`
    Throws:
      `IOException`

  - ### close

    public void close() throws IOException
    Description copied from interface: `FirebirdBlob.BlobOutputStream`
    Close this stream. Calling this method closes Blob stream and moves Blob from temporary into permanent state making any further content updates impossible.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Specified by:
      `close` in interface `FirebirdBlob.BlobOutputStream`
    Overrides:
      `close` in class `OutputStream`
    Throws:
      `IOException` - if I/O error occurs.