问题描述
如题,我想把word用流的方式存入到longrow类型的字段中。现在我可以把word保存到longrow字段中。但是从oracle中再还原成word的时候是乱码的。这个怎么解决啊。到网上查了半天也没有结果.....希望有这方面经验的前辈指点一下。小弟在这先谢啦。我的代码是这么写的:这是写入到表中的类OracleConnectionoc=newOracleConnection();//数据库连接对象Connectionconn=oc.getConn();//获得连接Filefile=newFile("c:/新建MicrosoftWord文档.doc");//指定要写入的文件intfileLength=(int)file.length();InputStreamfin;try{fin=newFileInputStream(file);PreparedStatementpstmt=conn.prepareStatement("insertintomylongrowvalues('001',?)");pstmt.setBinaryStream(1,fin,fileLength);pstmt.executeUpdate();}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}finally{oc.closeConn(conn);}这是把表中的数据还原成word的方法OracleConnectionoc=newOracleConnection();//数据库连接对象Connectionconn=oc.getConn();//获得连接InputStreamin=null;//定义Fileoutf=newFile("c:/abc.doc");//指定要写出的文件位置FileOutputStreamopt=null;OutputStreamWriteroutw=null;try{Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery("selectwordcontentfrommylongrow");byte[]byt=newbyte[1024];opt=newFileOutputStream(outf);if(rs!=null){if(rs.next()){in=rs.getBinaryStream("wordcontent");while(in.read()!=-1){intrl=in.read(byt);opt.write(byt,0,rl);}}}}catch(Exceptione){//TODO:handleexception}finally{try{in.close();opt.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}oc.closeConn(conn);}大家帮忙看看,我这么写有问题么?应该怎么写啊?