别人用C#写的程序,将word文件转化为二进制流存到BLOB字段(所以到底存没存进去 没办法直接通过oracle客户端看) 我用java写程序读出来,怎么都只能读到 86个字节,所以再写入word的时候就是乱码。 以下是我的部分读数据库的代码:
rs.getBytes("WORD_STREAM") //rs是ResultSet的实例,我想是不是因为不能直接用getByte的原因?但是别人说可以用C#写代码读取就没有问题,一下是其部分代码 FileStream fs;
BinaryWriter bw;
int bufferSize = 100;
byte[] outbyte = new byte[bufferSize];
long retval;
long startIndex = 0;
string pub_id = "";
OracleDataReader myReader = oraCom.ReturnDataReader("select * from TABLE where ID="+ultraTextEditor_ID.Text.Trim());
while (myReader.Read())
{
pub_id = myReader.GetInt32(4).ToString(); fs = new FileStream("C:\\结果"+pub_id+".doc", FileMode.OpenOrCreate, FileAccess.Write);
bw = new BinaryWriter(fs);
startIndex = 0; retval = myReader.GetBytes(2, startIndex, outbyte, 0, bufferSize);
while (retval == bufferSize)
{
bw.Write(outbyte);
bw.Flush(); startIndex += bufferSize;
retval = myReader.GetBytes(2, startIndex, outbyte, 0, bufferSize);
}
bw.Write(outbyte, 0, (int)retval - 1);
bw.Flush();
bw.Close();
fs.Close();
}
myReader.Close(); 另外,我用java操作byte[]写如文件是没有问题的,这个我用另外写的小程序测试过(先把某文件转化为byte[],再将该byte[]写如另一文件,没有问题,所以我想问题可能是在读取数据库方面)。请接触过相关方面的人给说说解决方法和思路。~~谢谢啦~~~~
rs.getBytes("WORD_STREAM") //rs是ResultSet的实例,我想是不是因为不能直接用getByte的原因?但是别人说可以用C#写代码读取就没有问题,一下是其部分代码 FileStream fs;
BinaryWriter bw;
int bufferSize = 100;
byte[] outbyte = new byte[bufferSize];
long retval;
long startIndex = 0;
string pub_id = "";
OracleDataReader myReader = oraCom.ReturnDataReader("select * from TABLE where ID="+ultraTextEditor_ID.Text.Trim());
while (myReader.Read())
{
pub_id = myReader.GetInt32(4).ToString(); fs = new FileStream("C:\\结果"+pub_id+".doc", FileMode.OpenOrCreate, FileAccess.Write);
bw = new BinaryWriter(fs);
startIndex = 0; retval = myReader.GetBytes(2, startIndex, outbyte, 0, bufferSize);
while (retval == bufferSize)
{
bw.Write(outbyte);
bw.Flush(); startIndex += bufferSize;
retval = myReader.GetBytes(2, startIndex, outbyte, 0, bufferSize);
}
bw.Write(outbyte, 0, (int)retval - 1);
bw.Flush();
bw.Close();
fs.Close();
}
myReader.Close(); 另外,我用java操作byte[]写如文件是没有问题的,这个我用另外写的小程序测试过(先把某文件转化为byte[],再将该byte[]写如另一文件,没有问题,所以我想问题可能是在读取数据库方面)。请接触过相关方面的人给说说解决方法和思路。~~谢谢啦~~~~
解决方案 »
- J2SE 关于JPanel的页面跳转问题
- (100分)iText 解析PDF文档中的所有可见内容
- 关于JAVA中求数的问题 在线等
- 发两个关于Exception的小问题。
- 如何使用java程序解压多个文件压缩成的.gz文件?急用,在线等,谢谢~~
- static private FileSystem fs = FileSystem.getFileSystem();中的FileSystem是什么东东?
- 请问如何判断一个字串是另一个字串的子串?
- 老的VCD支持什么类型的格式
- 高分求一个小游戏!急!!
- Java Web Start 是做什么的?
- eclipse的调试工具大家经常用吗???
- 数组初始化 Java vs c ++
Blob wordStream = rs.getBlob(i);//int i
将返回类型改为Blob在做相应处理就好了:)