日期:2014-05-20  浏览次数:20763 次

关于取得oracle的blob字段问题(急!!!!!!!!)
现在做的一个处理需要实现以下功能

  查找功能 
  按下查找按钮,会把查找的结果生成一个csv文件,然后把这个文件压缩,存到oracle的blob的字段中。

  csv-->zip--->bolb ,这个过程不能在本地生成文件,直接用把csv文件压缩zip文件,然后更新blob字段。

  这个已经ok.下边的功能还不行,望大虾们指点一下。


  从blob字段中取出上一步存入的zip文件,解压,生成csv文件,然后返回OutputStream形式。这个过程不允许在本地或服务器上生成文件。
难死小弟了,望大哥们指教!!

------解决方案--------------------
帮顶
------解决方案--------------------
没用过,太高深了,期待
------解决方案--------------------
没做过
学习一下
------解决方案--------------------
Java code
  ZipInputStream   in   =   new   ZipInputStream(queryRs.getBlob("file_blob").getBinaryStream());

------解决方案--------------------
Java code

OutputStream output = null;
InputStream is = null;
//从数据库结果集中获取blob字段内容
is = queryRs.getBlob("file_blob").getBinaryStream();
//创建zip输入流
ZipInputStream zis=new ZipInputStream(is);
//获取zip输入流中第一个文件流
zis.getNextEntry();

byte[] b = new byte[1024];
int i = 0;
while ((i = zis.read(b)) > 0) {
    output.write(b, 0, i);
}

return output;//返回输出流即可

------解决方案--------------------
那你总要知道返回给什么样的输出流吧?socket? response?
这些都可以获得OutputStream的,用这些OutputStream替换你临时文件就可以了