对于一个大学项目,我应该编写一个数据库,将图片保存在一个h2数据库中,并在ImageView中显示它。
FileInputStream fileStream = new FileInputStream(f);
Horse h = getSelectedHorse();
h.setImage(fileStream);
Connection c = H2ConnectionFactory.getConnection();
JdbcHorseDao horseDao = new JdbcHorseDao(c);
horseDao.update(h);
c.commit();
Image img = new Image(fileStream);
horseImages.put(h, img);
imageView.setImage(img);
当我首先将图像保存到数据库时,我无法立即在图像查看器中显示它,反之亦然(当我首先显示它时,我无法将其保存到数据库中)
我的想法是,流位于文件末尾,但我无法找到如何重新定位流(没有seek()方法)
答案 0 :(得分:2)
您需要重新打开该流。有random access classes允许您移动到文件中的某个位置,但是会导致性能下降。此外,您将自己进行双重阅读。
我认为最好将数据从stream读入byte [],然后将其重用于两个操作。