FileStream  objFs = new FileStream(TPLJ, FileMode.OpenOrCreate,FileAccess.Write);
BinaryWriter objBw = new BinaryWriter(objFs); const int BUFFER_SIZE = 1024;
byte [] arrBuffer = new byte[BUFFER_SIZE];
long startIndex = 0;
long retval = oracleReader.GetBytes(5, startIndex, arrBuffer, 0, BUFFER_SIZE); while ( retval == BUFFER_SIZE)
{
objBw.Write(arrBuffer,0,BUFFER_SIZE); objBw.Flush(); startIndex += BUFFER_SIZE; retval = oracleReader.GetBytes(5, startIndex, arrBuffer, 0, BUFFER_SIZE);
}
objBw.Write(arrBuffer, 0, (int)retval);
objBw.Flush(); objBw.Close(); objFs.Close();
高手给我看看,这段代码有什么问题?   照片字段是Long Raw类型,读出来后写到硬盘上显示不出来?可是别人在自己的机器上运行就没问题?给位给点高见,我都快急死了

解决方案 »

  1.   

    建议使用Blob类型             
                    oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("blobcontent");
                    BufferedOutputStream out =
                        new BufferedOutputStream(blob.getBinaryOutputStream());
                    BufferedInputStream in = new BufferedInputStream(stream);
                    int c = -1;
                    byte[] buffer = new byte[4096];
                    while ( (c = in.read(buffer)) != -1)
                    {
                        out.write(buffer, 0, c);
                    }
                    in.close();
                    out.close();