当前位置:首页 > 技能相关 > C#与C++ > 正文内容

C# 读取TXT文件的几种常见方法

admin2年前 (2023-03-08)C#与C++11700 修订时间:2024-01-04 22:55:44

1、File.ReadAllText(filePath)

如果你要读取的文件内容不是很多,可以使用 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);

2、File.ReadAllLines

该方法一次性读取文本内容的所有行,返回一个字符串数组,数组元素是每一行的内容

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

3、StreamReader

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

实例化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();

4、使用FileStream类进行文件的读取,并将它转换成char数组,然后输出

byte[] byData = new byte[100];
    char[] charData = new char[1000];
    public void Read()
    {
      try
      {
        FileStream file = new FileStream("E:\\test.txt", FileMode.Open);
        file.Seek(0, SeekOrigin.Begin);
        file.Read(byData, 0, 100); 
        //byData传进来的字节数组,用以接受FileStream对象中的数据,第2个参数是字节数组中开始写入数据的位置,它通常是0,表示从数组的开端文件中向数组写数据,最后一个参数规定从文件读多少字符.
        Decoder d = Encoding.Default.GetDecoder();
        d.GetChars(byData, 0, byData.Length, charData, 0);
        Console.WriteLine(charData);
        file.Close();
      }
      catch (IOException e)
      {
        Console.WriteLine(e.ToString());
      }
    }

拓展文章:

C# 将字符串写入txt文件的几种常见方法

C# 读取TXT文件的几种常见方法

C# 书写TXT日志文件的方法


 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/?id=298

分享给朋友:

相关文章

Web API的创建3年前 (2022-11-07)
C# 第一篇 踏上征程 3年前 (2022-11-14)
C# 第二篇 基础语法3年前 (2022-11-14)
C# 第三篇 流程控制3年前 (2022-11-15)
C# 第四篇 数组定义3年前 (2022-11-15)
C# 第五篇 字符串3年前 (2022-11-15)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。