如何检索原始文件

时间:2016-05-13 16:51:26

标签: java sql file blob

在Java JSP中,我使用输入流和BLOB数据类型将任何类型的文件写入数据库。我想检索BLOB文件。我应该如何去检索它?我尝试使用select语句并得到了这个(材料专栏)。 enter image description here

2 个答案:

答案 0 :(得分:2)

使用ResultSet,您可以检索java.sql.Blob实例:

Blob blob = resultSet.getBlob("MATERIAL");

然后你可以打开一个输入流:

InputStream input = blob.getBinaryStream();

按照Is it possible to create a File object from InputStream

中的说明将其写入文件

答案 1 :(得分:0)

从表中获取Blob:

try (ResultSet rs = statement.executeQuery(query)) {
    if(rs.next()) {
        fileBlob = rs.getBlob(1);
    }
}

将Blob的内容保存到新文件中:

try (InputStream ipStream = fileBlob.getBinaryStream(1, fileBlob.length());
        OutputStream opStream = new FileOutputStream(new File("path/to/file"))) {                        
    int c;
    while ((c = ipStream.read()) > -1) {
        opStream.write(c);
    }
}