1. 程式人生 > >java 強制將資料寫入磁碟

java 強制將資料寫入磁碟

今天遇到個問題,就是在試圖將資料寫入檔案的時候發現有的時候,資料還在快取中,並沒有將資料及時寫入到磁碟上,嘗試用了flush,發現也沒用,後來通過網路上,發現瞭解決方法

  1. FileOutputStream fos = new FileOutputStream(entryFile);  
  2. BufferedOutputStream dest = new BufferedOutputStream(fos, BUFFER);  
  3. // Write to new file.
  4. while ((count = zis.read(data, 0, BUFFER)) != -1)  
  5. {  
  6.     dest.write(data, 0
    , count);  
  7. }  
  8. dest.flush();  
  9. // 關鍵是下面這句,強制將資料寫入磁碟
  10. FileDescriptor fd = fos.getFD();  
  11. fd.sync();