sql java blob_JAVA和SQL关于BLOB的很大的问题?……

使用Blob对象保存声音文件到数据库,现在省去往数据库中插入数据一步而是将要保存的对象保存在Blob对象这中,然后再从这个Blob对象中取出声音文件保存在硬盘上。实现代码如下:Filefi...

使用Blob对象保存声音文件到数据库,现在省去往数据库中插入数据一步而是将要保存的对象保存在Blob对象这中,然后再从这个Blob对象中取出声音文件保存在硬盘上。实现代码如下:

File finput = new File("e:\\214.mp3");

FileInputStream stream = new FileInputStream(finput);

ByteArrayOutputStream out = new ByteArrayOutputStream(1000);

byte[] b = new byte[1000];

byte[] t=new byte[stream.available()];

int n,k=0;

while ((n = stream.read(b)) != -1) {

out.write(t, k, n);

k += n;

}

out.toByteArray();

stream.close();

out.close();

/*java.sql.Blob*/

Blob blob=new SerialBlob(t);

InputStream inputStream = blob.getBinaryStream();

File foutput=new File("e:\\215.mp3");

FileOutputStream fo = new FileOutputStream(foutput);

int c;

// 读取流并写入到文件中

while ((c = inputStream.read()) != -1) {

fo.write(c);

}

fo.close();

出现问题:保存前的文件和操作后保存在硬盘上的文件大小相同,可是却发生了变化,各位可以用comp e:\214.mp3 e:\215.mp3命令查看一下。我这里的比较结果为:

比较 E:\214.mp3 和 E:\215.mp3...

比较错误于 OFFSET 0

file1= FF

file2 = 0

比较错误于 OFFSET 1

file1= FB

file2 = 0

比较错误于 OFFSET 2

file1= B0

file2 = 0

比较错误于 OFFSET 3

file1= 4

file2 = 0

比较错误于 OFFSET 9

file1= 69

file2 = 0

比较错误于 OFFSET A

file1= 6

file2 = 0

比较错误于 OFFSET 10

file1= D

file2 = 0

比较错误于 OFFSET 11

file1= 20

file2 = 0

比较错误于 OFFSET 12

file1= C0

file2 = 0

比较错误于 OFFSET 17

file1= 1

file2 = 0

10 个不匹配之处 - 退出比较

为何会出现这样的情况。不解中……

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值