![](/img/trans.png)
[英]C# - How to Stop StreamWriter Writing Blank Line at the End of a File?
[英]How do I overwrite a text file line by line using StreamWriter WriteLine in c#
作為我的 c# 學習的一部分,我在控制台應用程序上有一個簡單的游戲。 我現在添加了一個文本文件來記錄最高分。 它有 4 行,日期,嘗試次數,以分鍾為單位的時間和以秒為單位的額外時間。 文本文件是項目解決方案的一部分,雖然我沒有指定完整路徑,但我可以使用 StreamReader 讀取文件並毫無問題地輸出行。 但是,如果我有一個新的最高分,並且我希望覆蓋文本文件中的值,則什么也不會發生。 文本文件保持不變。
我試過使用 StreamWriter。 使用 StreamReader ReadLine 將數據帶入應用程序並使用 StreamReader WriteLine 輸出,感覺有些直觀。 但是輸出部分不起作用。 對於我的罪過,這是我的代碼。 在 stackooerflow 上有一些類似的查詢,但我沒有找到似乎適合我的查詢的解決方案。
if (newBestScore== true)
{
DateTime dateToday = DateTime.Now;
string dateString=dateToday.ToShortDateString();
string currAttempts=CurrentAttempts.ToString();
using (StreamWriter newTopScore = new StreamWriter("TopScore.txt"))
{
newTopScore.WriteLine(dateString);
newTopScore.WriteLine(currAttempts);
newTopScore.WriteLine(timeTaken.Minutes);
newTopScore.WriteLine(timeTaken.Seconds);
newTopScore.Close();
}
}
我不會解決你的問題,但我會告訴你將來如何自己解決所有此類問題。
下載Process Monitor並為您的應用程序添加過濾器,如下所示:
Process Name
, contains
, <myapp>.exe
然后Include
然后按 Add 按鈕添加這個過濾器。
然后開始記錄並查找TopScore.txt
並查看它在哪個目錄中查找該文件。 您可以為此使用查找對話框( Ctrl + F ):
然后查看該文件的完整文件名,這樣您就知道它被寫在哪里了。 您甚至可以右鍵單擊並選擇“跳轉到...”。
了解什么是工作目錄。 如果您沒有提供完整路徑,該文件將寫入工作目錄。
為什么要走這條路? 這種方式證明你獨立有問題。 您不更改源代碼。 每當您更改源代碼並添加診斷代碼時,例如Console.WriteLine(Path.GetFullPath(...));
,問題可能會消失。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.