请问:怎样将存放在数据库BLOB字面中的文件用JAVA的方式存到别的地方去?
请给个源码,小弟学习!
请别给链接,因为公司限制只能够上特定的网站,谢谢!
下面我写的原码,不过是错的,您可以不必看:
package writeblob;import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;import java.io.FileWriter;import java.io.InputStream;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.sql.*;import oracle.sql.BLOB;/**
 * Function:ReadFileFromDatabase
 * Author:56553655
 * WriteTime:20060307
 * */
public class ReadBlob
{
  Connection conn;
  PreparedStatement pst;
  ResultSet rs;  public ReadBlob()
  {
    DBConn db = new DBConn();
    conn = db.getConnection();
  }  public static void main(String[] args)
  {
    ReadBlob readBlob = new ReadBlob();
    String FileName = "d:\\1233.doc";
    FileOutputStream FOS;    //OutputStreamWriter
    OutputStreamWriter osw;
    ReadBlob RB = new ReadBlob();
    BLOB blob = null;
    try
    {
      //FOS = new FileOutputStream(FileName);
      FileWriter fw = new FileWriter(FileName);
      BufferedWriter bw = new BufferedWriter(fw);
      //BinaryFileWriter 
      String sql = "select content from javatest where title='FLB'";
      RB.pst = RB.conn.prepareStatement(sql);
      RB.pst.setString(1, "FLB");
      RB.rs = RB.pst.executeQuery();
      if (RB.rs.next())
      {
        blob = (BLOB) RB.rs.getBlob(1);
        InputStream in = blob.getBinaryStream();
        byte[] bt = new byte[(int) in.available()];
        bw.write(in.read(bt));
        bw.close();
        in.close();        //bw.write(RB.rs.getBinaryStream(2));
      }
      System.out.println("File Read Successfully!");
    }
    catch (Exception e)
    {
      e.printStackTrace();
      System.out.println("File Read Error!");
      // TODO
    }
  }
}