如何将oracle中 zip流写入zip文件

luck5 2009-01-20 02:44:50
oracle中已经存的是zip流,就是把文件压缩后存到clob字段里,现在想把他取出来,并创建指定文件名的zip文件
rs.getClob(‘zipStream’));

谢谢各位
...全文
220 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
luck5 2009-01-20
  • 打赏
  • 举报
回复
String zipfilename= "e:/liuliang.zip";

我需要这样的文件名,因为db里的clob是zip流,给我的方法生成的文件打不开,提示文件被破坏
GkfSyser 2009-01-20
  • 打赏
  • 举报
回复
public void TestReadFileFromClob(String FileName){
try{
File file=new File(这写文件名);
java.io.FileWriter fw=new java.io.FileWriter(file);
oracle.jdbc.OracleConnection conn=(oracle.jdbc.OracleConnection)getConnection();
OraclePreparedStatement pst=(OraclePreparedStatement)conn.prepareStatement("select printfile from tKHDZDPRINT where " +
" theyear=? and theseason=? and khh=?");
pst.setInt(1, Integer.valueOf(2007));
pst.setInt(2, Integer.valueOf(1));
pst.setString(3, "1094103");
java.sql.ResultSet rs=pst.executeQuery();
if (rs.next()){
//读取内容
oracle.sql.CLOB c=(oracle.sql.CLOB)rs.getClob(1);
char[] cbuf=new char[1024];
Integer iRead;
java.io.Reader r=c.getCharacterStream(1L);
iRead=r.read(cbuf, 0, 1024);
while (iRead.compareTo(-1)!=0){
fw.write(cbuf, 0, iRead);
iRead=r.read(cbuf, 0, 1024);
}
fw.flush();;
fw.close();
}
pst.close();
}
catch( java.io.IOException e){

}
catch( java.lang.ClassNotFoundException e){

}
catch (java.sql.SQLException e){

}

}
luck5 2009-01-20
  • 打赏
  • 举报
回复
楼上兄弟只是给出了读取clob的方法,这个我知道,

现在问题是有了这个clob的内容,怎么把它写到指定路径文件里去
GkfSyser 2009-01-20
  • 打赏
  • 举报
回复
[code=Java]
/*
* 创建日期 2006-1-18
*
* TODO 要更改此生成的文件的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
package com.timesontransfar.common.database.impl;

import java.io.BufferedReader;
import java.io.Reader;
import java.io.Writer;
import java.sql.Clob;
import java.sql.ResultSet;

import com.timesontransfar.common.database.ISqlUtil;

/**
* @author Administrator
*
* TODO 要更改此生成的类型注释的模板,请转至
* 窗口 - 首选项 - Java - 代码样式 - 代码模板
*/
public class CommonSqlUtilImpl implements ISqlUtil {

/**
*
*/
public CommonSqlUtilImpl() {
super();
// TODO 自动生成构造函数存根
}

/* (非 Javadoc)
* @see com.timesontransfar.common.database.ISqlUtil#getClob(java.sql.ResultSet, java.lang.String)
*/
public String getClob(ResultSet rs, String column) {
// TODO 自动生成方法存根
String clobString="";
try{
//Clob clob1=rs.getClob(column);
Clob clob = rs.getClob(column);
if(clob!=null){
Reader is=clob.getCharacterStream();
BufferedReader br=new BufferedReader(is);
String s=br.readLine();
while(s!=null){
clobString += s;
s=br.readLine();
}
}
}catch(Exception e){
e.printStackTrace();

}
return clobString;
}


public void setClob(ResultSet rs, String column, String content) {
// TODO 自动生成方法存根
try{
Clob clob = rs.getClob(column);
if(clob!=null){
Writer writer=clob.setCharacterStream(0);
//Writer writer=clob.getCharacterOutputStream();
writer.write(content);
writer.flush();
writer.close();
}
}catch(Exception e){
e.printStackTrace();

}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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