public class SerialBlob extends Object implements Blob, Serializable, Cloneable
BLOB
値の直列化マッピングです。
SerialBlob
クラスは、Blob
オブジェクトからインスタンスを作成するためのコンストラクタを提供します。Blob
オブジェクトは、SerialBlob
オブジェクトを構築する前に、クライアントに SQL BLOB
値のデータを渡す必要があります。SQL BLOB
値のデータは、クライアント上で、Blob.getBytes
メソッドによってバイト配列として生成されます。または、Blob.getBinaryStream
メソッドによって未解釈のバイトストリームとして生成されます。
SerialBlob
メソッドは、SerialBlob
オブジェクトをバイト配列またはストリームとしてコピーできます。さらに、SerialBlob
オブジェクト内で、指定されたバイトパターンや Blob
オブジェクトを検索し、Blob
オブジェクトを更新または切り詰めることもできます。
コンストラクタと説明 |
---|
SerialBlob(Blob blob)
指定された
Blob オブジェクトの直列化されたバージョンである SerialBlob オブジェクトを構築します。 |
SerialBlob(byte[] b)
指定された
byte 配列の直列化されたバージョンである SerialBlob オブジェクトを構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
void |
free()
このメソッドは、
Blob オブジェクトを解放して、保持されているリソースを解放します。 |
InputStream |
getBinaryStream()
この
SerialBlob オブジェクトを入力ストリームとして返します。 |
InputStream |
getBinaryStream(long pos, long length)
Blob 値の一部 (バイト位置 pos から長さ length バイト分) を格納した InputStream オブジェクトを返します。 |
byte[] |
getBytes(long pos, int length)
この
SerialBlob オブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。 |
long |
length()
この
SerialBlob オブジェクトのバイト配列のバイト数を取得します。 |
long |
position(Blob pattern, long start)
この
SerialBlob オブジェクト内で、指定の Blob オブジェクトが開始される位置を返します。検索は指定位置から開始されます。 |
long |
position(byte[] pattern, long start)
この
SerialBlob オブジェクト内で、指定されたバイトパターンが開始される位置を返します。検索は指定位置から開始されます。 |
OutputStream |
setBinaryStream(long pos)
この
Blob オブジェクトが表す BLOB 値への書き込みに使用できるストリームを取得します。 |
int |
setBytes(long pos, byte[] bytes)
この
Blob オブジェクトが表す BLOB 値へ指定されたバイト配列を pos の位置から書き込み、書き込まれたバイト数を返します。 |
int |
setBytes(long pos, byte[] bytes, int offset, int length)
この
Blob オブジェクトが表す BLOB 値へ指定された byte 配列の全部または一部を書き込み、書き込まれたバイト数を返します。 |
void |
truncate(long length)
この
Blob オブジェクトが表す BLOB 値を len バイトの長さに切り詰めます。 |
public SerialBlob(byte[] b) throws SerialException, SQLException
byte
配列の直列化されたバージョンである SerialBlob
オブジェクトを構築します。
新しい SerialBlob
オブジェクトは、byte
配列のデータで初期化されます。このため、未接続の RowSet
オブジェクトは、データソースに手を加えずに直列化された Blob
オブジェクトを作成できます。
b
- 直列化される Blob
オブジェクトのデータを格納する byte
配列SerialException
- 直列化でエラーが発生した場合SQLException
- SQL エラーが発生した場合public SerialBlob(Blob blob) throws SerialException, SQLException
Blob
オブジェクトの直列化されたバージョンである SerialBlob
オブジェクトを構築します。
新しい SerialBlob
オブジェクトは、Blob
オブジェクトのデータで初期化されます。このため、Blob
オブジェクトは、あらかじめデータベースからクライアントへ SQL BLOB
値のデータを渡しておく必要があります。そうしないと、新しい SerialBlob
オブジェクトはデータを持たないオブジェクトになります。
blob
- この SerialBlob
オブジェクトの構築に使用される Blob
オブジェクト。null 以外。SerialException
- 直列化でエラーが発生した場合SQLException
- このコンストラクタに渡された Blob
が null
の場合。Blob
public byte[] getBytes(long pos, int length) throws SerialException
SerialBlob
オブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。
コピーされるバイト数がこの SerialBlob
オブジェクトのバイト配列より長くなる場合、配列の長さに合わせて切り詰められます。
getBytes
、インタフェース: Blob
pos
- この SerialBlob
オブジェクト内のコピーされる最初のバイトの位置。1
から開始され、1
より小さい値にはならない。また、この SerialBlob
オブジェクトの長さ以下でなければならないlength
- コピーされるバイト数SerialBlob
オブジェクトのコピー領域となるバイト配列。指定位置から指定のバイト数分続くSerialException
- 指定された開始位置が範囲外にある場合Blob.setBytes(long, byte[])
public long length() throws SerialException
SerialBlob
オブジェクトのバイト配列のバイト数を取得します。length
、インタフェース: Blob
SerialBlob
オブジェクトのバイト配列のバイト数を示す long
SerialException
- エラーが発生した場合public InputStream getBinaryStream() throws SerialException
SerialBlob
オブジェクトを入力ストリームとして返します。関連メソッド setBinaryStream
とは異なり、SerialBlob
が Blob
オブジェクトによって作成されたか、または byte
配列によって作成されたかに関係なく、ストリームが生成されます。getBinaryStream
、インタフェース: Blob
SerialBlob
のバイト配列を格納する java.io.InputStream
オブジェクトSerialException
- エラーが発生した場合setBinaryStream(long)
public long position(byte[] pattern, long start) throws SerialException, SQLException
SerialBlob
オブジェクト内で、指定されたバイトパターンが開始される位置を返します。検索は指定位置から開始されます。position
、インタフェース: Blob
pattern
- 検索対象のバイトパターンstart
- この SerialBlob
オブジェクト内で、検索が開始されるバイトの位置。最初の位置は 1
。1
以上かつ、この SerialBlob
オブジェクトの長さ以下でなければならないSerialBlob
オブジェクト内で、指定されたバイトパターンが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や開始位置が範囲外にある場合は -1
。戻り値の位置番号は 1
から開始されるSerialException
- blob の直列化中にエラーが発生した場合SQLException
- データベースから BLOB
値にアクセスするときにエラーが発生した場合public long position(Blob pattern, long start) throws SerialException, SQLException
SerialBlob
オブジェクト内で、指定の Blob
オブジェクトが開始される位置を返します。検索は指定位置から開始されます。position
、インタフェース: Blob
pattern
- 検索対象の Blob
オブジェクトstart
- この SerialBlob
オブジェクト内で、検索が開始されるバイトの位置。最初の位置は 1
。1
以上かつ、この SerialBlob
オブジェクトの長さ以下でなければならないSerialBlob
オブジェクト内で、指定された Blob
オブジェクトが開始される位置。検索は指定位置から開始される。パターンが見つからない場合や 開始位置が範囲外にある場合は -1
。戻り値の位置番号は 1
から開始されるSerialException
- blob の直列化中にエラーが発生した場合SQLException
- データベースから BLOB
値にアクセスするときにエラーが発生した場合public int setBytes(long pos, byte[] bytes) throws SerialException, SQLException
Blob
オブジェクトが表す BLOB
値へ指定されたバイト配列を pos
の位置から書き込み、書き込まれたバイト数を返します。setBytes
、インタフェース: Blob
pos
- 書き込みが開始される SQL BLOB
値の 位置。最初の位置は 1
。1
以上かつこの SerialBlob
オブジェクトの長さ以下でなければならない。bytes
- この Blob
オブジェクトを表す BLOB
値へ書き込まれるバイト配列SerialException
- BLOB
値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、または設定されたオフセット値が無効な場合SQLException
- データベースから BLOB
値にアクセスするときにエラーが発生した場合getBytes(long, int)
public int setBytes(long pos, byte[] bytes, int offset, int length) throws SerialException, SQLException
Blob
オブジェクトが表す BLOB
値へ指定された byte
配列の全部または一部を書き込み、書き込まれたバイト数を返します。書き込みは、BLOB
値の pos
の位置から開始され、書き込み先の指定されたバイト配列から len バイト書き込まれます。setBytes
、インタフェース: Blob
pos
- 書き込みが開始される BLOB
オブジェクトの位置。最初の位置は 1
。1
以上かつこの SerialBlob
オブジェクトの長さ以下でなければならない。bytes
- この BLOB
値へ書き込まれるバイト配列offset
- バイトの読み込みを開始する、byte
配列のオフセット。最初のオフセット位置は 0
。0
以上かつこの byte
配列の長さ以下でなければならない。length
- bytes バイトの配列から BLOB
値に書き込まれるバイト数。SerialException
- BLOB
値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、書き込まれるバイト数が SerialBlob
の長さを超えている場合、または長さとオフセットを合わせた値が Blob バッファーより大きい場合SQLException
- データベースから BLOB
値にアクセスするときにエラーが発生した場合。getBytes(long, int)
public OutputStream setBinaryStream(long pos) throws SerialException, SQLException
Blob
オブジェクトが表す BLOB
値への書き込みに使用できるストリームを取得します。ストリームは pos
の位置から開始します。このメソッドは、この SerialBlob
オブジェクトが Blob
によってインスタンス化されている場合に、setBinaryStream()
呼び出しを配下の Blob
に転送します。この SerialBlob
が byte
配列によってインスタンス化されている場合は SerialException
がスローされます。setBinaryStream
、インタフェース: Blob
pos
- 書き込みが開始される BLOB
値の位置。java.io.OutputStream
オブジェクトSQLException
- BLOB
値にアクセスするときにエラーが発生した場合SerialException
- SerialBlob が setBinaryStream()
をサポートする Blob
オブジェクトによってインスタンス化されていない場合getBinaryStream()
public void truncate(long length) throws SerialException
Blob
オブジェクトが表す BLOB
値を len
バイトの長さに切り詰めます。truncate
、インタフェース: Blob
length
- この Blob
オブジェクトが表す BLOB
値が切り詰められる長さ (バイト単位)SerialException
- Blob 値にアクセスするときにエラーが発生した場合、または切り詰める長さが SerialBlob の長さよりも長い場合public InputStream getBinaryStream(long pos, long length) throws SQLException
Blob
値の一部 (バイト位置 pos から長さ length バイト分) を格納した InputStream
オブジェクトを返します。getBinaryStream
、インタフェース: Blob
pos
- 取得する部分値の最初のバイトまでのオフセット。Blob
内で最初のバイトの位置は 1length
- 取得する部分値の長さ (バイト単位)Blob
値の一部を読み取ることのできる InputStream
。SQLException
- pos が 1 より小さい場合、pos が Blob
内のバイト数より大きい場合、または pos + length が Blob
内のバイト数より大きい場合public void free() throws SQLException
Blob
オブジェクトを解放して、保持されているリソースを解放します。Blob
オブジェクト。free
メソッドが一度呼び出されたあとは、オブジェクトは無効になります。free
を複数回呼び出した場合、2 回目以降の free
呼び出しは何も行わないものとして扱われます。free
、インタフェース: Blob
SQLException
- Blob のリソースの解放時にエラーが発生した場合 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.