文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用C#读写文本文件

2023-06-15 01:52

关注

这篇文章将为大家详细讲解有关如何使用C#读写文本文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

读取txt文件

如果你要读取的文件内容不是很多,可以使用 File.ReadAllText(filePath) 或指定编码方式 File.ReadAllText(FilePath, Encoding)的方法。它们都一次性将文本内容全部读完,并返回一个包含全部文本内容的字符串

string str1 = File.ReadAllText(@"c:\temp\a.txt"); //也可以指定编码方式 string str2 = File.ReadAllText(@"c:\temp\a.txt", Encoding.ASCII);

也可以使用方法File.ReadAllLines,该方法一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容

string[] strs1 = File.ReadAllLines(@"c:\temp\a.txt"); // 也可以指定编码方式 string[] strs2 = File.ReadAllLines(@"c:\temp\a.txt", Encoding.ASCII);

当文本的内容比较大时,我们就不要将文本内容一次性读完,而应该采用流(Stream)的方式来读取内容。

.Net为我们封装了StreamReader类,它旨在以一种特定的编码从字节流中读取字符。StreamReader类的方法不是静态方法,所以要使用该类读取文件首先要实例化该类,在实例化时,要提供读取文件的路径。实例化StreamReader类有很多种方式。下面我罗列出几种:

StreamReader sR1 = new StreamReader(@"c:\temp\a.txt"); // 同样也可以指定编码方式 StreamReader sR2 = new StreamReader(@"c:\temp\a.txt", Encoding.UTF8);FileStream fS = new FileStream(@"C:\temp\a.txt", FileMode.Open, FileAccess.Read, FileShare.None); StreamReader sR3 = new StreamReader(fS); StreamReader sR4 = new StreamReader(fS, Encoding.UTF8);FileInfo myFile = new FileInfo(@"C:\temp\a.txt"); // OpenText 创建一个UTF-8 编码的StreamReader对象 StreamReader sR5 = myFile.OpenText();// OpenText 创建一个UTF-8 编码的StreamReader对象 StreamReader sR6 = File.OpenText(@"C:\temp\a.txt");

初始化完成之后,你可以每次读一行,也可以每次读一个字符 ,还可以每次读几个字符,甚至也可以一次将所有内容全部读完

// 读一行 string nextLine = sR.ReadLine();// 读一个字符 int nextChar = sR.Read();// 读100个字符 int n = 100; char[] charArray = new char[n]; int nCharsRead = sR.Read(charArray, 0, n);      // 全部读完 string restOfStream = sR.ReadToEnd();

使用完StreamReader之后,不要忘记关闭它: sR.Close();

假如我们需要一行一行的读,将整个文本文件读完,下面看一个完整的例子:

StreamReader sR = File.OpenText(@"C:\temp\a.txt"); string nextLine; while ((nextLine = sR.ReadLine()) != null) {     Console.WriteLine(nextLine); } sR.Close();

写入txt文件

写文件和读文件一样,如果你要写入的内容不是很多,可以使用File.WriteAllText方法来一次将内容全部写如文件。如果你要将一个字符串的内容写入文件,可以用File.WriteAllText(FilePath) 或指定编码方式 File.WriteAllText(FilePath, Encoding)方法

string str1 = "Good Morning!"; File.WriteAllText(@"c:\temp\test\a.txt", str1); // 也可以指定编码方式 File.WriteAllText(@"c:\temp\test\a.txt", str1, Encoding.ASCII);

如果你有一个字符串数组,你要把数组的每一个元素作为一行写入文件中,可以用File.WriteAllLines方法

string[] strs = { "Good Morning!","Good Afternoon!","Good Evening!"}; File.WriteAllLines(@"c:\temp\a.txt", strs); // 也可以指定编码方式 File.WriteAllLines(@"c:\temp\a.txt", strs, Encoding.ASCII);

使用File.WriteAllText或File.WriteAllLines方法时,如果指定的文件路径不存在,会创建一个新文件;如果文件已经存在,则会覆盖原文件

当要写入的内容比较多时,同样也要使用流(Stream)的方式写入

.Net为我们封装了StreamWriter类,它以一种特定的编码向字节流中写入字符。StreamWriter类的方法同样也不是静态方法,所以要使用该类写入文件首先要实例化该类,实例化StreamWriter类同样有很多方式:

// 如果文件不存在,创建文件; 如果存在,覆盖文件 StreamWriter sW1 = new StreamWriter(@"c:\temp\a.txt"); // 也可以指定编码方式, true 是 Appendtext, false 为覆盖原文件 StreamWriter sW2 = new StreamWriter(@"c:\temp\a.txt", true, Encoding.UTF8);// FileMode.CreateNew: 如果文件不存在,创建文件;如果文件已经存在,抛出异常 FileStream fS = new FileStream(@"C:\temp\a.txt", FileMode.CreateNew, FileAccess.Write, FileShare.Read); StreamWriter sW3 = new StreamWriter(fS); StreamWriter sW4 = new StreamWriter(fS, Encoding.UTF8);// 如果文件不存在,创建文件; 如果存在,覆盖文件 FileInfo myFile = new FileInfo(@"C:\temp\a.txt"); StreamWriter sW5 = myFile.CreateText();

初始化完成后,可以用StreamWriter对象一次写入一行,一个字符,一个字符数组,甚至一个字符数组的一部分

// 写一个字符            sw.Write('a');// 写一个字符数组 char[] charArray = new char[100]; sw.Write(charArray);// 写一个字符数组的一部分(10~15)sw.Write(charArray, 10, 15);

同样,StreamWriter对象使用完后,不要忘记关闭。sW.Close(); 最后来看一个完整的使用StreamWriter一次写入一行的例子:

FileInfo myFile = new FileInfo(@"C:\temp\a.txt"); StreamWriter sW = myFile.CreateText();string[] strs = { "早上好", "下午好" ,"晚上好};            foreach (var s in strs) {     sW.WriteLine(s); } sW.Close();

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯