转换文件成为二进制数据并保存的Java代码:
取出数据并还原文件到本地的java代码:
[java] view plain copy//读取数据库二进制文件
public void readerJpg() throws SQLException
{
connection=connectionManager.getconn()//自己连接自己的数据库
String sqlString="select images from save_image where id=4"//从数据库中读出要还原文件的二进制码,这里我读的是自己的数据库id为4的文件
File file=new File("E:\\1.jpg")//本地生成的文件
if(!file.exists())
{
try {
file.createNewFile()
} catch (Exception e) {
e.printStackTrace()
}
}
try {
byte[] Buffer = new byte[4096*5]
statement=connection.prepareStatement(sqlString)
resultSet = statement.executeQuery()
if(resultSet.next())
{
FileOutputStream outputStream = new FileOutputStream(file)
InputStream iStream = resultSet.getBinaryStream("images")//去字段用getBinaryStream()
int size=0
while((size=iStream.read(Buffer))!=-1)
{
System.out.println(size)
outputStream.write(Buffer,0,size)
}
}
} catch (Exception e) {
e.printStackTrace()
}
}
你只是打开了一个输入流,还没有把输入流的数据读出来,你应该申请一个二进制缓冲区,然后把数据读出来byte[] buffer = new byte[4096]
while (in.read(buffer) != -1){
//do something to buffer
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)