データベースから複数の「ブロブ」画像を取得し、それらを連結するコードを書いています。以下はコードです
ResultSet images = pst.executeQuery();
byte[] imageData = null;
Blob blob = null;
int blobLength = 0;
List<BufferedImage> list = new LinkedList();
while (images.next()) {
blob = ((OracleResultSet) images).getBLOB(2);
blobLength = (int) blob.length();
imageData = blob.getBytes(1, blobLength);
list.add(ImageIO.read(new ByteArrayInputStream(imageData)));
}
問題は、変数「imageData」に画像が含まれているにもかかわらず、リストが常にnullであることです(チェックしました)。つまり、Java は ByteArrayInputStream を BufferedImage に変換できませんでした。なぜですか??!!