C# 写入文本文件,将文本追加到文件,然后加载(回读)

C# 写入文本文件,将文本追加到文件,然后加载(回读),c#,winforms,C#,Winforms,这是我在一个新类中的代码: public static void Save(List<Point> points, int imageWidth, int imageHeight, double originalFactor, double currentFactor) { string appDirectory = Path.GetDirectoryName(Application.LocalUserAppDataPath); string textFile = "Li

这是我在一个新类中的代码:

public static void Save(List<Point> points, int imageWidth, int imageHeight, double originalFactor, double currentFactor)
{
   string appDirectory = Path.GetDirectoryName(Application.LocalUserAppDataPath);
   string textFile = "LightningsDistance.txt";
   string path = "LightningsDistance";
   string lightningsDistancePath = Path.Combine(appDirectory,path);
   string file = Path.Combine(lightningsDistancePath,textFile);
   if (!Directory.Exists(lightningsDistancePath))
   {
      Directory.CreateDirectory(lightningsDistancePath);
   }
   if (!File.Exists(file))
   {
      File.Create(file);
   }
}
public static void Load()
{

}
在点坐标中,应如下所示:

Coordinate 1: X = 21, Y = 25
Coordinate 2: X = 210, Y = 344
等等。列表点是这样的,例如在索引0中,我看到:
X=21y=35

在Form1中,我有一个单击按钮,我将其称为保存方法:

private void button2_Click(object sender, EventArgs e)
{
   CloudEnteringAlert.Save(picturebox1PointsCoordinates, img.Width, img.Height, factor, currentfactor);
}
我想,当我点击按钮时,它将写入文本文件,如果我点击一次并绘制更多点,然后再次点击按钮,它将以与上述相同的格式向文本文件添加(附加)新信息,而不是覆盖现有文件

然后我有另一个点击按钮,它调用一个加载方法。到目前为止,Load方法没有得到任何结果。在新课程中:

public static void Save(List<Point> points, int imageWidth, int imageHeight, double originalFactor, double currentFactor)
{
   string appDirectory = Path.GetDirectoryName(Application.LocalUserAppDataPath);
   string textFile = "LightningsDistance.txt";
   string path = "LightningsDistance";
   string lightningsDistancePath = Path.Combine(appDirectory,path);
   string file = Path.Combine(lightningsDistancePath,textFile);
   if (!Directory.Exists(lightningsDistancePath))
   {
      Directory.CreateDirectory(lightningsDistancePath);
   }
   if (!File.Exists(file))
   {
      File.Create(file);
   }
}
public static void Load()
{

}
我需要的是,当我在任何时候单击Load时,它都会从我保存的文本文件中读取信息,并且现在只会将点坐标分配回列表点。

文件。AppendAllText(--)就是您为此目的所需的全部内容。其语法类似于

File.AppendAllText(string path,string contents,Encoding encoding);
所以你所需要的就是用合适的参数调用这个函数,就像这样

File.AppendAllText(textFile,"Something to write...");
如果使用正确的路径运行此语句5次,则生成的文件将包含五行文本,每行都有“要写入的内容…”


希望这就是你问题的解决办法。

你看过吗?也许吧?你的问题是什么?检查流读取器和流写入器类别这是你的答案。将数据而不是表单写入顺序文件是很常见的。更常见的是将数据写入:100200、50、40等。写入结构化格式并读取多个记录将需要额外的代码。