请问大家如何将一大段字符生成word文档并以二进制的方式存入oracle数据库,需要时再从oracle数据库中读出并以word方式展示,非常感谢!
解决方案 »
- 求助:关于新浪微博的用户相互关注的关系模型
- hibernate查询问题
- 请问怎么用JSP向MYSQL插入数据
- 给Java Web 开发的朋友们散分~
- jsp使用 beans 不能编译的问题!在线等带 ,谢谢帮忙~
- servlet抛出ClassCastException,请大家指点~~~~~
- 自己写的一个JSP页面静态化,有兴趣的可以进来讨论
- 字符型转日期型
- jsp中如何调用系统程序?急,谢谢!!!!
- 试试我的小代码 checkbox传值问题 为什么只是在第一个checkbox被选时才正常。救命阿 我搞了一个下午都搞不定,眼都花啦。。
- s2h整合,从数据库读数据通过jsp显示,总是出错!!
- 求助大家。。。jsp引包,出现了500错误。。。
* 向数据库中插入一个BLOB对象
* @param infile 要输入的数据文件
*/
public void blobInsert(String infile) throws Exception {
FileInputStream fis = null;
try {
String sql = "insert into t_test (word) values (?)";
File f = new File(infile);
fis = new FileInputStream(f);
ps = conn.prepareStatement(sql);
ps.setBinaryStream(1,fis,fis.available()); //第二个参数为文件的内容
int resl = ps.executeUpdate();
System.out.println(resl);
} catch (Exception ex) {
System.out.println("[blobInsert error : ]" + ex.toString());
} finally {
ps.close();
fis.close();
conn.close();
}
} /**
* 从数据库中读出BLOB对象
* @param outfile 输出的数据文件
* @param id 要取的文件在数据库中的ID
* @throws java.lang.Exception
*/
public void blobRead(String outfile, int id) throws Exception {
FileOutputStream fos = null;
InputStream is = null;
byte[] Buffer = new byte[4096];
ResultSet rs = null;
File file = null;
try {
ps = conn.prepareStatement("select word from t_test where id="+id);
rs = ps.executeQuery();
if (rs.next()) {
// 把数据库的文件显示到该目录下
file = new File(outfile);
if (!file.exists()) {
file.createNewFile(); // 如果文件不存在,则创建
}
fos = new FileOutputStream(file);
is = rs.getBinaryStream("word");
int size = 0;
//从数据库中一段一段的读出数据,-1表示读到了文件末
while ((size = is.read(Buffer)) != -1) {
fos.write(Buffer, 0, size);
}
}
} catch (Exception e) {
System.out.println("[OutPutFile error : ]" + e.getMessage());
} finally {
// 关闭用到的资源
fos.close();
rs.close();
ps.close();
conn.close();
}
}/**
* 生成word文档
*/
public void wordGenerate() throws IOException{
File file=new File("d:/test.docx");
if(!file.exists())
file.createNewFile();
FileOutputStream out=new FileOutputStream(file,true);
StringBuffer sb=null;
for(int i=0;i<10;i++){
sb=new StringBuffer();
sb.append("这是第"+i+"行:测试数据");
out.write(sb.toString().getBytes("utf-8"));
}
out.close();
}
public static void main(String[] args) {
try { BlobPros blob = new BlobPros();
blob.wordGenerate();
//blob.blobInsert("D:/test.docx");
blob.blobRead("D:/test1.docx", 1);
} catch (Exception e) {
System.out.println("[Main func error: ]" + e.getMessage());
}
}