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

时间:2017-11-06 03:20:35

标签: c# streamwriter

我知道这是一个“第一天”的问题,但我仍然无法理解为什么我的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();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

sr.WriteLine(historyList+sr.NewLine+item);

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

答案 1 :(得分:2)

看起来您想要做的就是将文本附加到文件中,因此实际上无需打开流读取器来读取现有内容,然后将其与新内容一起写回来。

您可以使用以下内容在一个步骤中执行所需操作。如果输入路径文件不存在,它将创建一个新文件,如果它已经存在,它只会附加你的新项目。

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

}