C#之自动保存和读取数据

C#之自动保存和读取数据

在做机器人抓取项目时,根据“九点标定”法获得了一组建立机器坐标和相机坐标转换关系的数据,在机器人和相机位姿不改变的前提下,如果不将这组数据保存,则每次打开操作界面都需要重新进行标定。为了避免重复操作,需要将数据自动保存,且在下次抓取时自动读取。解决方法如下:

文件保存方法:

        /// <summary>
        /// 
        /// </summary>
        /// <param name="name"> 文件名 </param>
        /// <param name="data"> 保存的数据 </param>
        /// <returns></returns>
        private string SaveToFile(string name,string data)
        {
            string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\";    //设置保存路径为当前目录(保存在项目文件夹下)
            if (!System.IO.Directory.Exists(CurDir)) System.IO.Directory.CreateDirectory(CurDir);   //如果该路径不存在时,在当前文件目录下创建文件夹

            String filePath = CurDir + name + ".txt";//保存文件的路径+名称+格式
            System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false);     //文件以覆盖方式添加内容(即下一次添加的数据会覆盖当前的数据)

            file1.Write(data);                                                              //保存数据到文件

            file1.Close();                                                                  //关闭文件
            file1.Dispose();                                                                //释放对象

            return filePath;
        }

调用文件保存方法:

将文件名称及要保存的数据传入方法中,则会在项目文件夹中生成一个SaveDir文件(这个文件名可由自己定义),在此文件中会存放“标定参数”文本文档,方法调用成功后可以打开项目文件夹查看,如图所示:

文件读取方法:

        /// <summary>
        /// 
        /// </summary>
        /// <param name="filePath"> 文件路径 </param>
        /// <returns></returns>
        public string fileToString(string filePath)
        {
            string str = "";

            //获取文件内容
            if (System.IO.File.Exists(filePath))
            {
                System.IO.StreamReader file1 = new System.IO.StreamReader(filePath);//读取文件路径
                str = file1.ReadToEnd();                                            //读取文件中的数据

                file1.Close();
                file1.Dispose();
            }
            return str;
        }

调用文件读取方法:

              //将文件保存方法中生成的文件路径传入到文件读取方法中
              string strData = fileToString(System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir\" + "标定参数" + ".txt");

猜你喜欢

转载自blog.csdn.net/Kevin_Sun777/article/details/109366998