クラス LargeObject

java.lang.Object
org.postgresql.largeobject.LargeObject
すべての実装されたインタフェース:
AutoCloseable

public class LargeObject extends Object implements AutoCloseable

This class provides the basic methods required to run the interface, plus a pair of methods that provide InputStream and OutputStream classes for this object.

Normally, client code would use the getAsciiStream, getBinaryStream, or getUnicodeStream methods in ResultSet, or setAsciiStream, setBinaryStream, or setUnicodeStream methods in PreparedStatement to access Large Objects.

However, sometimes lower level access to Large Objects are required, that are not supported by the JDBC specification.

Refer to org.postgresql.largeobject.LargeObjectManager on how to gain access to a Large Object, or how to create one.

関連項目:
  • フィールドの概要

    フィールド
    修飾子とタイプ
    フィールド
    説明
    static final int
    Indicates a seek from the current position.
    static final int
    Indicates a seek from the end of a file.
    static final int
    Indicates a seek from the beginning of a file.
  • コンストラクタの概要

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    LargeObject(Fastpath fp, long oid, int mode)
    This opens a large object.
    protected
    LargeObject(Fastpath fp, long oid, int mode, @Nullable BaseConnection conn, boolean commitOnClose)
    This opens a large object.
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    This method closes the object.
     
    Returns an InputStream from this object.
    getInputStream(int bufferSize, long limit)
    Returns an InputStream from this object, that will limit the amount of data that is visible.
    getInputStream(long limit)
    Returns an InputStream from this object, that will limit the amount of data that is visible.
    long
     
    int
    推奨されていません。
    As of 8.3, replaced by getLongOID()
    Returns an OutputStream to this object.
    int
    read(byte[] buf, int off, int len)
    Reads some data from the object into an existing array.
    byte[]
    read(int len)
    Reads some data from the object, and return as a byte[] array.
    void
    seek(int pos)
    Sets the current position within the object.
    void
    seek(int pos, int ref)
    Sets the current position within the object.
    void
    seek64(long pos, int ref)
    Sets the current position within the object using 64-bit value (9.3+).
    int
    This method is inefficient, as the only way to find out the size of the object is to seek to the end, record the current position, then return to the original position.
    long
    See #size() for information about efficiency.
    int
     
    long
     
    void
    truncate(int len)
    Truncates the large object to the given length in bytes.
    void
    truncate64(long len)
    Truncates the large object to the given length in bytes.
    void
    write(byte[] buf)
    Writes an array to the object.
    void
    write(byte[] buf, int off, int len)
    Writes some data from an array to the object.
    void
    Writes some data from a given writer to the object.

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • SEEK_SET

      public static final int SEEK_SET
      Indicates a seek from the beginning of a file.
      関連項目:
    • SEEK_CUR

      public static final int SEEK_CUR
      Indicates a seek from the current position.
      関連項目:
    • SEEK_END

      public static final int SEEK_END
      Indicates a seek from the end of a file.
      関連項目:
  • コンストラクタの詳細

    • LargeObject

      protected LargeObject(Fastpath fp, long oid, int mode, @Nullable BaseConnection conn, boolean commitOnClose) throws SQLException

      This opens a large object.

      If the object does not exist, then an SQLException is thrown.

      パラメータ:
      fp - FastPath API for the connection to use
      oid - of the Large Object to open
      mode - Mode of opening the large object
      conn - the connection to the database used to access this LOB
      commitOnClose - commit the transaction when this LOB will be closed (defined in LargeObjectManager)
      例外:
      SQLException - if a database-access error occurs.
      関連項目:
    • LargeObject

      protected LargeObject(Fastpath fp, long oid, int mode) throws SQLException

      This opens a large object.

      If the object does not exist, then an SQLException is thrown.

      パラメータ:
      fp - FastPath API for the connection to use
      oid - of the Large Object to open
      mode - Mode of opening the large object (defined in LargeObjectManager)
      例外:
      SQLException - if a database-access error occurs.
      関連項目:
  • メソッドの詳細

    • copy

      public LargeObject copy() throws SQLException
      例外:
      SQLException
    • getOID

      @Deprecated public int getOID()
      推奨されていません。
      As of 8.3, replaced by getLongOID()
      戻り値:
      the OID of this LargeObject
    • getLongOID

      public long getLongOID()
      戻り値:
      the OID of this LargeObject
    • close

      public void close() throws SQLException
      This method closes the object. You must not call methods in this object after this is called.
      定義:
      close インタフェース内 AutoCloseable
      例外:
      SQLException - if a database-access error occurs.
    • read

      public byte[] read(int len) throws SQLException
      Reads some data from the object, and return as a byte[] array.
      パラメータ:
      len - number of bytes to read
      戻り値:
      byte[] array containing data read
      例外:
      SQLException - if a database-access error occurs.
    • read

      public int read(byte[] buf, int off, int len) throws SQLException
      Reads some data from the object into an existing array.
      パラメータ:
      buf - destination array
      off - offset within array
      len - number of bytes to read
      戻り値:
      the number of bytes actually read
      例外:
      SQLException - if a database-access error occurs.
    • write

      public void write(byte[] buf) throws SQLException
      Writes an array to the object.
      パラメータ:
      buf - array to write
      例外:
      SQLException - if a database-access error occurs.
    • write

      public void write(byte[] buf, int off, int len) throws SQLException
      Writes some data from an array to the object.
      パラメータ:
      buf - destination array
      off - offset within array
      len - number of bytes to write
      例外:
      SQLException - if a database-access error occurs.
    • write

      public void write(ByteStreamWriter writer) throws SQLException
      Writes some data from a given writer to the object.
      パラメータ:
      writer - the source of the data to write
      例外:
      SQLException - if a database-access error occurs.
    • seek

      public void seek(int pos, int ref) throws SQLException

      Sets the current position within the object.

      This is similar to the fseek() call in the standard C library. It allows you to have random access to the large object.

      パラメータ:
      pos - position within object
      ref - Either SEEK_SET, SEEK_CUR or SEEK_END
      例外:
      SQLException - if a database-access error occurs.
    • seek64

      public void seek64(long pos, int ref) throws SQLException
      Sets the current position within the object using 64-bit value (9.3+).
      パラメータ:
      pos - position within object
      ref - Either SEEK_SET, SEEK_CUR or SEEK_END
      例外:
      SQLException - if a database-access error occurs.
    • seek

      public void seek(int pos) throws SQLException

      Sets the current position within the object.

      This is similar to the fseek() call in the standard C library. It allows you to have random access to the large object.

      パラメータ:
      pos - position within object from beginning
      例外:
      SQLException - if a database-access error occurs.
    • tell

      public int tell() throws SQLException
      戻り値:
      the current position within the object
      例外:
      SQLException - if a database-access error occurs.
    • tell64

      public long tell64() throws SQLException
      戻り値:
      the current position within the object
      例外:
      SQLException - if a database-access error occurs.
    • size

      public int size() throws SQLException

      This method is inefficient, as the only way to find out the size of the object is to seek to the end, record the current position, then return to the original position.

      A better method will be found in the future.

      戻り値:
      the size of the large object
      例外:
      SQLException - if a database-access error occurs.
    • size64

      public long size64() throws SQLException
      See #size() for information about efficiency.
      戻り値:
      the size of the large object
      例外:
      SQLException - if a database-access error occurs.
    • truncate

      public void truncate(int len) throws SQLException
      Truncates the large object to the given length in bytes. If the number of bytes is larger than the current large object length, the large object will be filled with zero bytes. This method does not modify the current file offset.
      パラメータ:
      len - given length in bytes
      例外:
      SQLException - if something goes wrong
    • truncate64

      public void truncate64(long len) throws SQLException
      Truncates the large object to the given length in bytes. If the number of bytes is larger than the current large object length, the large object will be filled with zero bytes. This method does not modify the current file offset.
      パラメータ:
      len - given length in bytes
      例外:
      SQLException - if something goes wrong
    • getInputStream

      public InputStream getInputStream() throws SQLException

      Returns an InputStream from this object.

      This InputStream can then be used in any method that requires an InputStream.

      戻り値:
      InputStream from this object
      例外:
      SQLException - if a database-access error occurs.
    • getInputStream

      public InputStream getInputStream(long limit) throws SQLException
      Returns an InputStream from this object, that will limit the amount of data that is visible.
      パラメータ:
      limit - maximum number of bytes the resulting stream will serve
      戻り値:
      InputStream from this object
      例外:
      SQLException - if a database-access error occurs.
    • getInputStream

      public InputStream getInputStream(int bufferSize, long limit) throws SQLException
      Returns an InputStream from this object, that will limit the amount of data that is visible. Added mostly for testing
      パラメータ:
      bufferSize - buffer size for the stream
      limit - maximum number of bytes the resulting stream will serve
      戻り値:
      InputStream from this object
      例外:
      SQLException - if a database-access error occurs.
    • getOutputStream

      public OutputStream getOutputStream() throws SQLException

      Returns an OutputStream to this object.

      This OutputStream can then be used in any method that requires an OutputStream.

      戻り値:
      OutputStream from this object
      例外:
      SQLException - if a database-access error occurs.