程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 沒用調用flush導致的數據保存丟失,調用flush

沒用調用flush導致的數據保存丟失,調用flush

編輯:C#入門知識

沒用調用flush導致的數據保存丟失,調用flush


沒用調用flush導致的數據保存丟失


在將字符串保存到文件時,我們采有下面的寫法,大部分情況下,都可以直接將數據保存到文件中,

using (var fs = System.IO.File.Create(path))
{
  var sw = new StreamWriter(fs, Encoding.UTF8);
  sw.Write(content.Trim());
}

但是,當要保存的數據內容超3MB的時候,再按上面的方法寫文件,就可能導致文件內容寫入被截斷。最後找到問題的原因是,原來沒有調Flush()方法,下面正確的調用方法

using (var fs = System.IO.File.Create(path))
{
  var sw = new StreamWriter(fs, Encoding.UTF8);
  sw.Write(content.Trim()); 

  sw.Flush();


}


為何關閉一個緩沖區輸出流之前應使用flush方法?

這要搞清楚緩沖區的原理了,緩沖區其實就是封裝了一個數組,對數據進行臨時緩沖,存滿後再集中對數據進行操作,這也是提高流操作數據效率的原因,當緩沖區存滿後會自動對數據進行操作,不刷新也可以,但是如果不存滿就必須刷新了才能把數據刷到目的地,打個比方,默認緩沖區大小是8k,如果你是用緩沖區操作10k的數據,你使用了flush方法那麼數據不會有丟失,但是如果沒有使用fulsh方法那麼得到得數據只有8k,剩下的2k會丟失,還有不明白的歡迎留言,一家之言各位有什麼高見歡迎多多指教

excel 保存的數據會丟失部分數據,怎解決?

如果重裝軟件都沒用,你試用另一個版本安裝看看,安裝前要卸載原軟件,再不行就只好重裝系統了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved