java 读取orcale blob 生成图片保存到D盘

woulderful 2011-12-23 02:39:13

设:已从数据库取出Blob(java.sql.Blob)变量名 blob

取出的是张图片,我现在要保存在 D盘 高手贴代码,要完整的,在线等,可运行 立刻给分
...全文
369 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
龙四 2011-12-23
  • 打赏
  • 举报
回复
我来手写一下

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();


woniuxiaoxia 2011-12-23
  • 打赏
  • 举报
回复
给你个静态方法参考,blob 是你取出的值,name 是你的图片名字,不过我没用


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();
}
}


67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧