Blobオブジェクト (データベースから取得され、PDF を表す) をByteArrayInputStreamオブジェクトに変換する方法について、疑問があります。
だから私はこのようなことができることを知っています:
ByteArrayOutputStream docPDF = null;
InputStream blobinstream = null;
Blob blob = rset.getBlob("PDF"); // I obtain it from a result set DB query
if(blob!=null) {
blobinstream = blob.getBinaryStream();
int chunk = 1024;
byte[] buffer = new byte[chunk];
int length = -1;
docPDF = new ByteArrayOutputStream();
while ((length = blobinstream.read(buffer)) != -1) {
docPDF.write(buffer, 0, length);
}
docPDF.flush();
前のコード スニペットでは、DB クエリからBlobオブジェクトを取得し、それを読み取ってByteArrayOutputStream docPDFを取得しました。
次に、 ByteArrayOutputStream docPDFをByteArrayInputStreamオブジェクトに変換するために、次のようなことを行います。
ByteArrayInputStream currentPdfBAIS = new ByteArrayInputStream(docPDF.toByteArray());
これで、 ByteArrayInputStreamオブジェクトを取得できました。
それはうまくいきますが、それはそれを行うための最良の方法ですか?ByteArrayOutputStream docPdfオブジェクトを経由せずに、 Blobオブジェクトから始まるByteArrayInputStreamオブジェクトを取得できますか? または、以前に提示されたソリューションは正しいものですか?
TNX