温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#如何实现读写文本文件中的数据

发布时间:2021-06-21 10:32:08 来源:亿速云 阅读:211 作者:小新 栏目:开发技术

这篇文章将为大家详细讲解有关C#如何实现读写文本文件中的数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

【1】首先我们定义一段假数据,这里以一个string为例字

  static void Main(string[] args) { string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";  }

【2】接着我们将这个数据写入.txt文件
代码如下:

/// <summary>         /// 保存数据data到文件的处理过程;         /// </summary>         /// <param name="data"></param>         public static String SavaProcess(string data) {             System.DateTime currentTime = System.DateTime.Now;             //获取当前日期的前一天转换成ToFileTime             string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd");             //按照日期建立一个文件名             string FileName = "MyFileSend" + strYMD + ".txt";             //设置目录             string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir";             //判断路径是否存在             if(!System.IO.Directory.Exists(CurDir)){                 System.IO.Directory.CreateDirectory(CurDir);             }             //不存在就创建             String FilePath = CurDir + FileName;             //文件覆盖方式添加内容             System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false);             //保存数据到文件             file.Write(data);             //关闭文件             file.Close();             //释放对象             file.Dispose();             return FilePath;         }

结果是返回一个文件路径,根据具体场合可返回,也可不返回;我们来测试一下文件是否生成成功,我们在Main函数中调用这个方法,代码如下:

static void Main(string[] args)         {             string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";             String filePath = SavaProcess(data);        Console.WriteLine(filePath);               }

运行结果如下:

C#如何实现读写文本文件中的数据

很显然,在相关目录下,生成了想对应的文件;我们在看看cmd中打印出了如下路径:

  D:\VSProject\SavaProcessToFile\SavaProcessToFile\bin\Debug\SaveDirMyFileSend20170628.txt

生成的这个路径对我们接下来的工作很重要,读取文本数据的时候需要用到;

【3】读取.txt文件数据

我们再定义一个读取数据的方法:

  /// <summary>         /// 获取文件中的数据         /// </summary>         /// <param name="args"></param>         public static string fileToString( String filePath ){             string strData = "";             try             {                 string line;                 // 创建一个 StreamReader 的实例来读取文件 ,using 语句也能关闭 StreamReader                 using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))                 {                                       // 从文件读取并显示行,直到文件的末尾                     while ((line = sr.ReadLine()) != null)                     {                         //Console.WriteLine(line);                         strData = line;                     }                                     }                           }             catch (Exception e)             {                 // 向用户显示出错消息                 Console.WriteLine("The file could not be read:");                 Console.WriteLine(e.Message);             }             return strData;         }

看见没?我们这边传入的参数就是生成文件的那个路径,注意,参数的类型是String表示文本的,而不是string表示字符串的,因为我再生成路径的时候就是用的String,所以这里对应起来;

接下来,我们来测试一下,看我们有没有读取文件成功,看cmd中是否会出现我们最初写入的那个字符串?我们在Main函数中调用方法,代码如下:

static void Main(string[] args)         {             string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了";             String filePath = SavaProcess(data);             string strData = fileToString(filePath);             Console.WriteLine(strData);                  }

运行结果如下:

C#如何实现读写文本文件中的数据

结果出现了最开始存的那个字符串;

【4】写入和读取过程完整代码

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SavaProcessToFile { class Program { /// <summary> /// 保存数据data到文件的处理过程; /// </summary> /// <param name="data"></param> public static String SavaProcess(string data) { System.DateTime currentTime = System.DateTime.Now; //获取当前日期的前一天转换成ToFileTime string strYMD = currentTime.AddDays(-1).ToString("yyyyMMdd"); //按照日期建立一个文件名 string FileName = "MyFileSend" + strYMD + ".txt"; //设置目录 string CurDir = System.AppDomain.CurrentDomain.BaseDirectory + @"SaveDir"; //判断路径是否存在 if(!System.IO.Directory.Exists(CurDir)){ System.IO.Directory.CreateDirectory(CurDir); } //不存在就创建 String FilePath = CurDir + FileName; //文件覆盖方式添加内容 System.IO.StreamWriter file = new System.IO.StreamWriter(FilePath,false); //保存数据到文件 file.Write(data); //关闭文件 file.Close(); //释放对象 file.Dispose(); return FilePath; } /// <summary> /// 获取文件中的数据 /// </summary> /// <param name="args"></param> public static string fileToString(String filePath){ string strData = ""; try { string line; // 创建一个 StreamReader 的实例来读取文件 ,using 语句也能关闭 StreamReader using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath)) {  // 从文件读取并显示行,直到文件的末尾  while ((line = sr.ReadLine()) != null) { //Console.WriteLine(line); strData = line; }  }  } catch (Exception e) { // 向用户显示出错消息 Console.WriteLine("The file could not be read:"); Console.WriteLine(e.Message); } return strData; } static void Main(string[] args) { string data = "我的数据要开始存入文件了,我好开心啊!覆盖了吗?好像覆盖了,真的覆盖了"; String filePath = SavaProcess(data); string strData = fileToString(filePath); Console.WriteLine(strData);  } } }

关于“C#如何实现读写文本文件中的数据”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI