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);
}
}
}
我知道这是一个有点 "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);
}
}
}