Files.copy方法工作不正常

时间:2017-02-23 17:41:21

标签: image file javafx stream copy

我尝试从数据库中检索图像并将其添加到Person类中。我通过Files.copy()将图像复制到新的图像文件并设置新的Image对象。但似乎每次复制的所有过程都是首先开始的,所以所有的Image对象都只有一个图像 - 最后复制的图像,然而copy()方法在设置之前就已经存在了。如何解决?

try {
    checkConnection();
    rs = con.prepareStatement("SELECT * FROM Staff").executeQuery();

    while(rs.next()){
        InputStream is = rs.getBinaryStream("Photo");
        Files.copy(is, Paths.get("src\\ilc\\images\\image.jpg"), StandardCopyOption.REPLACE_EXISTING);
        Image image = new Image("ilc/images/image.jpg", 100, 100, true, true);

        Rectangle rectangle = new Rectangle();
        persons.add(
                new Person(rs.getString("Name"), 
                           rs.getInt("Salary"),
                           rs.getDouble("Influence"),
                           false,
                           false,
                           false,
                           image)
        );
    }

    rs.close();
}
catch (FileNotFoundException ex) {
    ex.printStackTrace();
} 
catch (SQLException ex) {
    ex.printStackTrace();
}
catch (IOException ex) {
    ex.printStackTrace();
} 

0 个答案:

没有答案