设:已从数据库取出Blob(java.sql.Blob)变量名 blob
取出的是张图片,我现在要保存在 D盘 高手贴代码,要完整的,在线等,可运行 立刻给分
------解决方案--------------------
给你个静态方法参考,blob 是你取出的值,name 是你的图片名字,不过我没用
- Java code
public static void writeAvatarToDisk(Blob blob, String name) throws IOException { byte[] data = null; try { InputStream inStream = blob.getBinaryStream(); BufferedImage bimage = null; //缓存图片对象 BufferedInputStream ins = new BufferedInputStream(inStream); //生成缓存输入流 bimage=ImageIO.read(ins); //由ImageIO对象读成缓存图片对象。ImageIO是个很重要的对象 FileOutputStream sos=new FileOutputStream(new File("d:/111.jpg")); BufferedOutputStream bos = new BufferedOutputStream(sos); //生成输出缓存 JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); //生成JPEG图片对象 encoder.encode(bimage); //按格式把图片流进行编码 bos.close(); sos.close(); } catch (SQLException e) { e.printStackTrace(); } }
------解决方案--------------------
我来手写一下
Blob blob = rs.getBlob("imageField");
InputStream is = blob.getInputStream();
FileOutputStream fos = new FileOutputStream("D:/a.jpg");
byte[] data = new byte[8096];
int length = 0;
while((length = is.read(data, length,8096)) != -1) {
fos.write(data, 0 ,length);
fos.flush();
}
fos.close();
is.close();