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は、複数の並行スレッドによる使用において安全ではありません。 複数のスレッドで使用する場合は、適切な同期処理によってSerialBlobへのアクセスを制御するようにしてください。
コンストラクタ | 説明 |
---|---|
SerialBlob(Blob blob) |
指定された
Blob オブジェクトの直列化されたバージョンであるSerialBlob オブジェクトを構築します。 |
SerialBlob(byte[] b) |
指定された
byte 配列の直列化されたバージョンであるSerialBlob オブジェクトを構築します。 |
修飾子と型 | メソッド | 説明 |
---|---|---|
Object |
clone() |
この
SerialBlob のクローンを返します。 |
boolean |
equals(Object obj) |
このSerialBlobを指定されたオブジェクトと比較します。
|
void |
free() |
このメソッドは、
SeriableBlob オブジェクトを解放して、保持されているリソースを解放します。 |
InputStream |
getBinaryStream() |
この
SerialBlob オブジェクトを入力ストリームとして返します。 |
InputStream |
getBinaryStream(long pos, long length) |
Blob 値の一部(バイト位置posから長さlengthバイト分)を格納したInputStream オブジェクトを返します。 |
byte[] |
getBytes(long pos, int length) |
この
SerialBlob オブジェクトの指定の位置から、指定されたバイト数を別のバイト配列にコピーします。 |
int |
hashCode() |
この
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
- 指定された開始位置が範囲外である場合、またはこのオブジェクトでfree
が以前呼び出された場合Blob.setBytes(long, byte[])
public long length() throws SerialException
SerialBlob
オブジェクトのバイト配列のバイト数を取得します。length
、インタフェースBlob
SerialBlob
オブジェクトのバイト配列のバイト数を示すlong
SerialException
- エラーが発生した場合、またはこのオブジェクトでfree
が以前呼び出された場合public InputStream getBinaryStream() throws SerialException
SerialBlob
オブジェクトを入力ストリームとして返します。 関連メソッドsetBinaryStream
とは異なり、SerialBlob
がBlob
オブジェクトによって作成されたか、またはbyte
配列によって作成されたかに関係なく、ストリームが生成されます。 getBinaryStream
、インタフェースBlob
SerialBlob
のバイト配列を格納するjava.io.InputStream
オブジェクトSerialException
- エラーが発生した場合、またはこのオブジェクトでfree
が以前呼び出された場合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の直列化時にエラーが発生した場合、またはこのオブジェクトでfree
が以前呼び出された場合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の直列化時にエラーが発生した場合、またはこのオブジェクトでfree
が以前呼び出された場合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
値にアクセスするときにエラーが発生した場合、設定された位置が無効な場合、設定されたオフセット値が無効な場合、またはこのオブジェクトでfree
が以前呼び出された場合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バッファより大きい場合、またはこのオブジェクトでfree
が以前呼び出された場合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
オブジェクトでインスタンス化されていない場合、またはこのオブジェクトでfree
が以前呼び出された場合getBinaryStream()
public void truncate(long length) throws SerialException
Blob
オブジェクトが表すBLOB
値をlen
バイトの長さに切り詰めます。truncate
、インタフェースBlob
length
- このBlob
オブジェクトが表すBLOB
値が切り詰められる長さ(バイト単位)SerialException
- Blob値にアクセスするときにエラーが発生した場合、切り詰める長さがSerialBlobの長さよりも長い場合、またはこのオブジェクトでfree
が以前呼び出された場合public InputStream getBinaryStream(long pos, long length) throws SQLException
Blob
値の一部(バイト位置posから長さlengthバイト分)を格納したInputStream
オブジェクトを返します。getBinaryStream
、インタフェースBlob
pos
- 取得する部分値の最初のバイトまでのオフセット。 Blob
内で最初のバイトの位置は1 length
- 取得する部分値の長さ(バイト単位)Blob
値の一部を読み取ることのできるInputStream
。SQLException
- posが1より小さい場合、posがBlob
内のバイト数より大きい場合、またはpos+lengthがBlob
内のバイト数より大きい場合SerialException
- このオブジェクトでfree
メソッドが以前呼び出された場合public void free() throws SQLException
SeriableBlob
オブジェクトを解放して、保持されているリソースを解放します。 free
メソッドが一度呼び出されたあとは、オブジェクトは無効になります。 free
を複数回呼び出した場合、2回目以降のfree
呼出しは何も行わないものとして扱われます。
free
、インタフェースBlob
SQLException
- Blobのリソースの解放時にエラーが発生した場合public boolean equals(Object obj)
null
ではなく、このオブジェクトと同じ文字シーケンスを表すSerialBlob
オブジェクトである場合にのみ、結果はtrue
になります。 equals
、クラスObject
obj
- このSerialBlob
と比較するオブジェクトSerialBlob
を表す場合はtrue
、それ以外の場合はfalse
Object.hashCode()
, HashMap
public int hashCode()
SerialBlob
のハッシュ・コードを返します。hashCode
、クラスObject
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。