[英]Why is my StreamWriter not writing to a .txt file?
我試着寫一個文件,但它仍然是空的 ......
FileStream f = new FileStream("HighScore.txt",
FileMode.OpenOrCreate,
FileAccess.ReadWrite);
StreamWriter streamWriter = new StreamWriter(f);
streamWriter.WriteLine("aaaaa");
有沒有人遇到這個問題,可以幫助我嗎?
你必須Close
作家; 因為StreamWriter
是IDisposable
我們可以using
:
using(FileStream f = new FileStream("HighScore.txt",
FileMode.OpenOrCreate,
FileAccess.ReadWrite)) {
using(StreamWriter streamWriter = new StreamWriter(f)) {
streamWriter.WriteLine("aaaaa");
}
}
通常,編寫器會緩存更新並在關閉時應用它們。 如果要在過程中間的某處應用更改,請調用Flush()
。 如果您只想將文本寫入文件,可以更容易
File.WriteAllText("HighScore.txt", "aaaaa");
StreamWriter正在緩沖您的數據。 緩沖數據在滿時自動刷新或關閉連接時,您沒有執行任何操作。
你的情況是數據太小,因此沒有刷新。
關閉連接將解決問題。
你有幾個選擇。
手動沖洗 - 少推薦
要保存數據時手動添加刷新。
steamWriter.Flush()
手動關閉連接 - 更好,但仍然不是最好的。
streamWriter.Close();
處理連接 - 最好。
包裝的代碼與using
將部署在范圍內的資源{..}
完成后,脫手操作將關閉連接,從而刷新您的數據。
using (var f = new FileStream("HighScore.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (var streamWriter = new StreamWriter(f))
{
streamWriter.WriteLine("aaaaa");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.