环境:MySQL version: 5.0.22-community-nt
数据库中有个 table demoimage(content varchar,image blob) Java代码如下: package com.demo;
import java.io.*;
import java.sql.*;
public class ImageDemoS { private static Connection conn=null;
private PreparedStatement pst=null;
private ResultSet rst=null;
/**
* @param args
* @throws Exception
*/
public void queryData(Connection conn) throws Exception{
String sql="select image from imagedemo where content = 'my.png'";
pst=conn.prepareStatement(sql);
rst=pst.executeQuery();
rst.next();
FileOutputStream os=new FileOutputStream("E://mypic.png");;
InputStream in = rst.getBinaryStream("image");
byte b[] = new byte[0x7a120];
int i;
int j=0;
while((i=in.read(b) )!=(-1)){
System.out.println(j++ +"字节");
os.write(i);
in.read(b);
}
os.flush();
os.close();
}
调用这个方法时可以输入文件,但其实际大小为1kb根本无法显示。后台输出j的值也只有0kb而已。
大家帮我看一下
数据库中有个 table demoimage(content varchar,image blob) Java代码如下: package com.demo;
import java.io.*;
import java.sql.*;
public class ImageDemoS { private static Connection conn=null;
private PreparedStatement pst=null;
private ResultSet rst=null;
/**
* @param args
* @throws Exception
*/
public void queryData(Connection conn) throws Exception{
String sql="select image from imagedemo where content = 'my.png'";
pst=conn.prepareStatement(sql);
rst=pst.executeQuery();
rst.next();
FileOutputStream os=new FileOutputStream("E://mypic.png");;
InputStream in = rst.getBinaryStream("image");
byte b[] = new byte[0x7a120];
int i;
int j=0;
while((i=in.read(b) )!=(-1)){
System.out.println(j++ +"字节");
os.write(i);
in.read(b);
}
os.flush();
os.close();
}
调用这个方法时可以输入文件,但其实际大小为1kb根本无法显示。后台输出j的值也只有0kb而已。
大家帮我看一下
System.out.println(j++ +"字节");
os.write(i);
in.read(b);
}你讀出 b 卻寫入 i,還有多讀了一次b沒寫進檔案。
大家快来帮帮忙!!