添付ファイルの内容を読み取ってバイト配列内に格納する方法は次のとおりです。あるいは、OutputStream
に直接書き込んで、byte[]
にスキップすることもできます。
DataHandler dataHandler = attachment.getDataHandler();
final byte[] data;
try (InputStream inputStream = dataHandler.getInputStream()) {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
final byte[] buffer = new byte[4096];
for (int read = inputStream.read(buffer); read > 0; read = inputStream.read(buffer)) {
outputStream.write(buffer, 0, read);
}
data = outputStream.toByteArray();
}
//todo write data to BLOB
あなたはより多くのメモリ効率的であることや、添付ファイルがメモリに収まらない場合、あなたはブロブの出力ストリームに直接書き込むことができますしたい場合。 ByteArrayOutputStream
をOutputStream outputStream = blob.setBinaryStream(1);
と置き換えてください。attachemtの内容をバイト配列に読み込むことはできませんか、それとも直列化したいですか?あなたの質問を明確にしてください。あなたが何を求めているのかわかりません。 –
最後に、データベースにBLOBとして格納する必要があります。 –