这是我在新课程中的代码:
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);
}
}
文本文件的格式应该是:
Image Width: Image Height:
Original Factor: Current Factor:
Points Coordinates:
在积分坐标中,它应该是这样的:
Coordinate 1: X = 21, Y = 25
Coordinate 2: X = 210, Y = 344
等等。列表点就像这样,例如在索引0中我看到:X = 21 Y = 35
在Form1中,我有一个单击按钮,我在其中调用此保存方法:
private void button2_Click(object sender, EventArgs e)
{
CloudEnteringAlert.Save(picturebox1PointsCoordinates, img.Width, img.Height, factor, currentfactor);
}
我希望当我单击按钮时它会写入文本文件,如果我单击一次并绘制更多点并再次单击该按钮,则会将新信息添加(追加)到文本文件中格式如上,不要覆盖现有文件。
然后我有另一个调用Load方法的单击按钮。 Load方法到目前为止还没有任何进展。就在新课堂上:
public static void Load()
{
}
我需要在任何时候单击“加载”时,它将从我保存的文本文件中读取信息,并且现在仅将“点”坐标分配回“列表”点。
答案 0 :(得分:1)
File.AppendAllText( - )就是你所需要的。它的语法类似于;
File.AppendAllText(string path,string contents,Encoding encoding);
所以你需要的是用适当的参数调用这个函数,比如这个;
File.AppendAllText(textFile,"Something to write...");
如果使用正确的路径运行此语句5次,则生成的文件将包含五行文本,每行包含“要编写的内容...”
希望这是解决问题的方法。