一開始的**寫法:
inputstream inputstream = null;
fileoutputstream fileoutputstream = null;
inputstream = response.body().bytestream();
file file = new file(*******);
if(!file.exists())
try inputstream.close();
fileoutputstream.close();
}catch (exception e)finally
if(fileoutputstream != null)
}catch (ioexception ex)
}response.close();
問題就出在while迴圈中fileoutputstream.write(bytes)這:
正確寫法:
//略
int len;
while ((len = inputstream.read(bytes)) != -1)
//略
附:
一開始我還以為是不是因為outputstream沒有呼叫flush()從而造成在while迴圈中寫入了重複的資料,經調查發現outputstream、fileoutputstream的flush()什麼都沒做。相反bufferedoutputstream的flush()會把快取寫入到檔案,部分原始碼如下:
public synchronized void flush() throws ioexception
/** flush the internal buffer */
private void flushbuffer() throws ioexception
}
寫程式,還是少一點複製貼上,多動手,勤思考
只有一次 只有一次
二十多歲的年紀我累了很久,也在努力的尋找機會向陽而生。十三歲時迫於生活父母把剛上初一的我獨自留在老家,被父母伺候慣的我沒有一點生活常識,不懂得如何把衣服洗淨,不懂得如何生火做飯,不懂得如何花錢,不懂得如何戰勝黑暗和孤獨,每次乙個人回家時都會出現幻聽和幻覺,看著家裡好像有炊煙,聽誰都像媽媽的聲音.好不...
記一次muse ui 使用
vue init webpack test musenpm i muse ui snpm i babel plugin import less less loader d然後,將.babelrc的 plugins 裡面新增一段 裡面的 plugins import 在使用的時候出現過乙個問題,專案本...
第一次使用
本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...