如何取出存在oracle数据库中blob类型中的word文档呢?请高手指点
java.sql.PreparedStatement pstmt = dbUtil.getConection().prepareStatement("select t.filebody BLOBCOL from app_2.td_octl_document_file t where t.recordid='45632'");
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
/* 取出此BLOB对象 */
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob("BLOBCOL");
/* 以二进制形式输出 */
// System.out.println();
OutputStream out = new FileOutputStream("c:/catalog/45632.doc");
byte[] b =blob.getBytes(1,(int)blob.length());
out.write(b);
out.close();
}
/* 正式提交 */
} catch (Exception ex) {
/* 出错回滚 */
try {
throw ex;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
代码如上:这样能把.doc文件输入到指定路径,但打开全是乱码?有人遇见过这种情况吗?
------解决方案--------------------
编码的原因。
Java默认采用的编码为unicode,与数据库采用的编码会有差别。
要进行编码的转换。