请问:怎样将存放在数据库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
}
}
}
请给个源码,小弟学习!
请别给链接,因为公司限制只能够上特定的网站,谢谢!
下面我写的原码,不过是错的,您可以不必看:
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
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货