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 個不匹配之處 - 退出比較
為何會出現這樣的情況。不解中……
展開
總結
以上是生活随笔為你收集整理的sql java blob_JAVA和SQL关于BLOB的很大的问题?……的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java filter注入_如何使用Fi
- 下一篇: python矩形打印_【Python】旋