----从数据库中读出的二进制字段
byte[] blobData=null;
public byte[] blob(){
BLOB blob=(BLOB)rs.getBlob("PHOTO");
if(blob==null){
blobData=new byte[0];
map.put(rsmd.getColumnName(columnI),blobData);
}else{
long len=blob.getLength();
blobData=blob.getBytes((long)1,(int)len);
blobData=rs.getBytes(columnI);
map.put(rsmd.getColumnName(columnI),blobData);
}
return blobData;
}
----生成文件
byte[] picByte=blob();
FileOutputStream fos=new FileOutputStream(new File("E:/xx.jpg"));
fos.write(picByte);
fos.flush();
fos.close();以上程序都可以运行,但是写出的文件却和数据库中的不符
byte[] blobData=null;
public byte[] blob(){
BLOB blob=(BLOB)rs.getBlob("PHOTO");
if(blob==null){
blobData=new byte[0];
map.put(rsmd.getColumnName(columnI),blobData);
}else{
long len=blob.getLength();
blobData=blob.getBytes((long)1,(int)len);
blobData=rs.getBytes(columnI);
map.put(rsmd.getColumnName(columnI),blobData);
}
return blobData;
}
----生成文件
byte[] picByte=blob();
FileOutputStream fos=new FileOutputStream(new File("E:/xx.jpg"));
fos.write(picByte);
fos.flush();
fos.close();以上程序都可以运行,但是写出的文件却和数据库中的不符
InputStream input = blob.getBinaryStream();
int blobSize = (int)blob.length();
byte[] blobbytes = new byte[blobSize];
input.read(blobbytes,0,blobSize-1) ;
input.close();