首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ByteArrayInputStream()显示为空

ByteArrayInputStream()显示为空
EN

Stack Overflow用户
提问于 2015-05-28 00:12:13
回答 2查看 782关注 0票数 0

我正在尝试加载MySQL数据库中的blob数据格式([B@e96bf)的图像,但无法将其加载到JLabel中,如下所示。它显示ByteArrayInputStream为空。

代码语言:javascript
复制
byte[] bytesl = null;

ResultSet rs = DB.DB.search("select image from imageio where id = '2'");
while (rs.next()) {
    bytesl = rs.getBytes(1);               
}
BufferedImage imag = ImageIO.read(new ByteArrayInputStream(bytesl));

Image img = imag;

img = img.getScaledInstance(jLabel1.getWidth(), jLabel1.getHeight(),
                            Image.SCALE_SMOOTH);
jLabel2.setIcon(new ImageIcon(img));
EN

回答 2

Stack Overflow用户

发布于 2015-05-28 02:56:10

我认为您的代码不会转到while循环,因为没有包含此类查询的记录。最可能的问题是2周围的符号。通常id是一个数字,但在你的请求中,它看起来像是你将它与字符串进行了比较。尝试删除2周围的撇号符号。

票数 0
EN

Stack Overflow用户

发布于 2015-05-28 04:15:21

代码语言:javascript
复制
fileContent = Files.readAllBytes(f2.toPath());
DB.DB.statement("insert into imageio (image) values ('" + fileContent + "')");

您已经将字符串[B@96bf插入到数据库中。ImageIO无法将其转换为图像,因此它返回null。

您至少应该使用PreparedStatement并将数据作为参数提供。你真的应该在这里使用Blob和输入流。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30487847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档