使用C#程序逐行读取文件内容 您所在的位置:网站首页 逐行读取文本文件怎么弄 使用C#程序逐行读取文件内容

使用C#程序逐行读取文件内容

2024-06-09 21:57| 来源: 网络整理| 查看: 265

使用C#程序逐行读取文件内容 简介

在这里,我们将学习编写C#程序,以逐行读取文件内容。有各种各样的方法来实现这一目的,我们将逐一讨论它们。

C#中有文件处理功能。在大多数情况下,文件被用于储存数据。文件处理或者文件管理在普通人的理解中意味着各种进程,例如创建文件、从文件中读取、向文件中写入、追加等等。读写文件是文件处理中最常见的两个操作。

1. 使用File.ReadLines()方法

逐行读取文件内容的第一种方法是使用File.ReadLines()方法。该方法接受一个可选的字符编码作为参数。

好了,这一过程可能会抛出一些异常,如IO异常。如果出现I/O错误则抛出此异常,如果不能找到要打开的文件,则抛出另一个异常FileNotFoundException。

这一过程也有一个缺点,即当您需要读取大型文件的时候,这种技术效率相当低下。这种方法返回一个Enumerable,可以在整个集合返回之前开始枚举。

算法

以下算法给出了使用File.ReadLines()方法来逐行读取文件内容时的一种逐步过程。

下面的算法将引导我们创建程序。

步骤1 – 创建一个字符串,该字符串将存储文件路径的名称,记住这是绝对路径。

步骤2 – 使用IEumerable以获取最终结果,因为该文件是逐行读取的。

步骤3 – 通过使用Environment.Newline获取为环境定义的换行字符串。然后程序在此结束。

举个例子

以下是此过程的代码 –

using System; using System.Collections.Generic; using System.IO; public class Example { public static void Main() { string fileloc = @"D:\ttpt\loc ew.txt"; IEnumerable lines = File.ReadLines(fileloc); Console.WriteLine(String.Join(Environment.NewLine, lines)); } }

输出

This is a file. Hello from tutorials point.

首先需要创建一个字符串类型的变量,其中包含了文件位置的地址。之后,在程序中逐行读取文件。

2. 使用File.ReadAllLines()方法

逐行读取文件内容的另一种方法是使用File.ReadAllLines()方法。我们不应该将ReadAllLines用于大数据文件,因为与返回Enumerable的ReadLines不同,ReadAllLines返回一个包含文件所有行的字符串数组,我们必须等待整个字符串数组返回再访问该数组。 这个方法可以接受一个字符编码作为可选参数,类似于ReadLines。这个过程可能会抛出一些异常,如IO Exception。如果发生I/O错误,将抛出IOException。如果找不到要打开的文件,则将抛出另一个错误FileNotFoundException。

算法

下面的算法将给出一步一步的过程,使用File.ReadAllLines()方法逐行读取文件的内容。

下面讨论的算法将引导我们创建程序。

步骤1-创建一个字符串,用于存储文件路径的名称,记住这是一个绝对路径。

步骤2-使用ReadAllLines,程序打开一个文本文件,读取所有行,然后结束它。

步骤3-通过使用Environment.Newline获取为环境定义的换行字符串。然后程序结束。

示例

以下是此过程的代码:

using System; using System.IO; public class Example { public static void Main() { string fileloc = @"D:\ttpt\loc ew.txt"; string[] lines = File.ReadAllLines(fileloc); Console.WriteLine(String.Join(Environment.NewLine, lines)); } }

输出

This is a file. Hello from tutorials point.

首先需要创建一个字符串类型的变量,该变量包含文件位置的地址。然后,文件在程序中逐行读取。在这里,不同之处在于行以字符串形式读取。当在程序中使用string.join时,它们全部连接在一起。

3.使用StreamReader.ReadLine()方法

还有一种方法可以通过StreamReader类逐行读取文件。该方法是StreamReader.ReadLine()。这将一直运行到文件结尾。

它可以正常运行,因为它从当前流中读取一行文本并将其作为字符串返回。返回输入流中的下一行,如果输入流已达到其结论,则返回null。这样它就到达了文件的结尾。

如果发生任何I/O错误,则也会发生I/O Exception。另一个异常是OutOfMemoryException,发生在没有足够的内存创建返回字符串的缓冲区时。

算法

下面的算法将给出一步一步的过程,使用StreamReader.ReadLine()方法逐行读取文件的内容。

下面讨论的算法将引导我们创建程序。

步骤1-创建一个字符串,用于存储文件路径的名称,记住这是一个绝对路径。

步骤2-创建一个新的读取器来读取文件的内容。

步骤3-while循环运行到文件的结尾。当它达到null时,结束运行。

步骤4-最后,读取完文件的内容后,代码退出。

示例

以下是此过程的代码:

using System; using System.IO; public class Example { public static void Main() { string fileloc = @"D:\ttpt\loc ew.txt"; using (StreamReader read = new StreamReader(fileloc)) { string line; while ((line = read.ReadLine()) != null) { Console.WriteLine(line); } } } }

输出

This is a file. Hello from tutorials point.

在这种方法中,首先创建一个字符串与文件地址。然后创建一个读取实例。通过逐行读取内容来进入null,即文件的结尾。

时间复杂度

由于在这里逐行读取文件,但是一次性读取所有行。无论使用的方法是File.ReadLines()、Files.ReadAllLines()还是StreamReader.ReadLine(),它们都是一次性读取文件。因此,这里每种方法的时间复杂度为O(1)。

结论

在本文中,我们广泛讨论了C#编程读取文件逐行内容。我们了解了三种不同的方法:从File类中读取,其中有ReadLines()和ReadAllLines()函数。第三种方法是从StreamReader类中读取。然后,我们讨论了三种技术的代码和算法。我们希望本文可以帮助您增强对C#的了解。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有