簡體   English   中英

為什么我的StreamWriter沒有寫入.txt文件?

[英]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作家; 因為StreamWriterIDisposable我們可以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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM