もし元となるオブジェクトがOutputStreamクラスであれば、getBinaryStreamはそのオブジェクトを直接返します。
getAsciiStreamgetUnicodeStreamgetBinaryStream
可能な型であればgetXXXStreamメソッドにより、列をストリーミングしてResultSetからフィールドを取得することができます。
何らかのストリームを利用可能な型の一覧については、を参照してください。(また、も参照してください。)
実際にストリームとして記録されているか否かにかかわらず、型に従いストリームとして取得することが可能か決まります。
次の例ではLONG VARCHARの列がストリームとして取得されます。 // データをストリームとして取得する。
ResultSet rs = s.executeQuery("SELECT b FROM atable");
while (rs.next()) {
// java.io.InputStreamを使ってデータを取得する。
java.io.InputStream ip = rs.getAsciiStream(1);
// ストリームを処理する。--これはデータを出力する
// 一般的なやり方である。
int c;
int columnSize = 0;
byte[] buff = new byte[128];
for (;;) {
int size = ip.read(buff);
if (size == -1)
break;
columnSize += size;
String chunk = new String(buff, 0, size);
System.out.print(chunk);
}
}
rs.close();
s.close();
conn.commit();