C# 为什么 StreamWriter 每次写入文件后都会写入空行?

C# Why is StreamWriter writing empty lines after each time it writes to the file?

我知道这是一个有点 "Day one" 的问题,但我仍然无法理解为什么我的 Stream 编写器在每次写入后都会写入空行

namespace PostFinder
{
    class HistorySaver
    {
        public static void Save(string item, string path)
        {
            StreamReader sre = new StreamReader(path);
            string historyList = sre.ReadToEnd();
            sre.Dispose();
            StreamWriter sr = new StreamWriter(path);
            sr.WriteLine(historyList+sr.NewLine+item);
            sr.Dispose();
        }
    }
}
sr.WriteLine(historyList+sr.NewLine+item);

.WriteLine() 方法在您传递给它的内容之后放置一个行尾字符。如果您不想要该字符,请使用 .Write().

您似乎只想将文本附加到文件中,因此实际上没有必要打开流阅读器来读取现有内容,然后用新内容将它们写回。

您可以使用下面的方法一步完成您想要的所有操作。如果输入路径文件不存在,它将创建一个新文件,如果它已经存在,它将仅附加您的新项目。

namespace PostFinder
{
    class HistorySaver
{
    public static void Save(string item, string path)
    {
        File.AppendAllText(path, item + Environment.NewLine);
    }
}

}