亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

文件處理的問題

把JDBC和oracle的內容學完后回來做這個項目,在老師視頻里代碼的關鍵提示下終于完成了,由于我的navicat里只能顯示數據庫里存儲文 件的大小不能像老師那樣直接顯示內容,于是我在服務端又創建了一個文件,把內容寫進去。奇怪的是,如果客戶端傳的文件是圖片,服務端的文件能寫成功,可以 看到圖片,但如果客戶端傳的是文本,服務端的文件就寫不進去,大小為0. 但是數據庫里文件是添加成功了的,所以問題出在我的本地文件寫入操作上,試了很多辦法,都找不出原因,把這段代碼貼一下,就是依樣畫葫蘆,客戶端怎么用bis讀 進byte數組的,服務端我就怎么用bos把byte數組寫進文件,自己實在找不出問題在哪兒,求大神指教

public?void?addFileRecord(File?file){
????????conn=DBUtil.getConnection();
????????String?path="F:/sample/"+file.getFileName();
????????FileOutputStream?fos=null;
????????BufferedOutputStream?bos=null;
????????
????????try{
????????????String?sql="insert?into?"+FILETABLE+
????????????????????"?values(sq_file.nextval,?,?,?)";
????????????ps=conn.prepareStatement(sql);
????????????ps.setString(1,?file.getFileName());
????????????ps.setBytes(2,?file.getFileContent());
????????????ps.setString(3,?path);
????????????
????????????fos=new?FileOutputStream(path);
????????????bos=new?BufferedOutputStream(fos);
????????????bos.write(file.getFileContent());
????????????bos.flush();
????????????ps.executeUpdate();
????????}catch(SQLException?e){
????????????e.printStackTrace();
????????
????????}?catch?(FileNotFoundException?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}?catch?(IOException?e)?{
????????????//?TODO?Auto-generated?catch?block
????????????e.printStackTrace();
????????}finally{
????????????DBUtil.closeJDBC(rs,?ps,?conn);????????????
????????}


正在回答

1 回答

既然圖片能寫入,為什么文字不行,按理說用的一個流如果沒有格式限制就沒有問題,這我也看不出什么問題。不過給你幾個建議,你可以調試一下看看傳文本的時候哪里阻塞了導致數據過不去,還有catch塊不要拋出太多,可以用父類代替,最重要的一點。。。為什么沒注釋,還好代碼不長也不難,要是復雜點真想回答的看一眼也覺得煩。。。

0 回復 有任何疑惑可以回復我~
#1

紅袖侍讀 提問者

非常感謝!剛才再跑,莫名數據就有了
2016-07-03 回復 有任何疑惑可以回復我~
#2

漢娜之眼 回復 紅袖侍讀 提問者

哦哦,
2016-07-04 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Java Socket應用---通信是這樣練成的
  • 參與學習       125005    人
  • 解答問題       627    個

分享的是 Java 中的網絡編程,使用Socket實現網絡聊天通信

進入課程

文件處理的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號