情况大致是这样的:oracle数据库里面有个字段是BLOB,后台用Ibatis查询数据库,返回类型是一个Map,也就是说Map的value就是BLOB类型的值。在java代码中取BLOB的值然后写入文件时,写入的文件无法打开,取出来的BLOB的字节大小也小于文件的大小,求解。谢谢部分代码//这个BLOB类型不是java.sql里面的,是oracle.sql里面的,调试的时候显示的就是这个类型
import oracle.sql.BLOB;
BLOB attachFile = (BLOB)result.get("ATTACHFILE");
FileOutputStream out = new FileOutputStream("D:\\a.jpg");
out.write(attachFile.getBytes());
out.close();
import oracle.sql.BLOB;
BLOB attachFile = (BLOB)result.get("ATTACHFILE");
FileOutputStream out = new FileOutputStream("D:\\a.jpg");
out.write(attachFile.getBytes());
out.close();
public static byte[] blobToBytes(BLOB blob) {
InputStream is = null;
byte[] b = null;
try {
is = blob.getBinaryStream();
b = new byte[(int) blob.length()];
is.read(b);
return b;
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
is.close();
is = null;
} catch (IOException e) {
e.printStackTrace();
}
}
return b;
}
现在有一个转化的方法,但是对于一个700多k的文件来说大概需要3,4秒,请问下有什么方法可以提高效率吗