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

WBOY
WBOY 转载
2023-08-28 12:41:08 554浏览

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\locew.txt";

      IEnumerable<string> 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 用作 ReadAllLines,与返回 Enumerable 的 ReadLines 不同,ReadAllLines 给出一个包含文件所有行的字符串数组,我们必须等待返回整个字符串数组才能访问该数组。

此方法接受字符编码作为可选参数,类似于 ReadLines 的做法。那么这个过程可能会抛出一些异常,比如IO Exception。如果发生 I/O 错误,则会抛出此错误;如果找不到尝试打开的文件,则会抛出另一个错误 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\locew.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 异常。另一个异常是 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\locew.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.

在此方法中,也首先使用文件地址创建一个字符串。然后创建一个读取实例。它通过逐行读取内容到达空值,即文件末尾。

时间复杂度

从这里开始,我们正在逐行读取文件,但要一次性读取。无论使用哪种方法,即 File.ReadLines()、Files.ReadAllLines() 和 StreamReader.ReadLine()。他们所有人都在一次读取文件。所以,这里每个方法的时间复杂度都是O(1)。

结论

在本文中,我们广泛讨论了逐行读取文件内容的 C# 程序。我们了解了如何通过三种不同的方式来完成它。 File 类中的两个函数是 ReadLines() 和 ReadAllLines()。第三个来自 StreamReader 类。然后我们讨论了三种技术的代码和算法。我们希望本文能够帮助您增强有关 C# 的知识。

以上就是C# 程序逐行读取文件内容的详细内容,更多请关注php中文网其它相关文章!

声明:本文转载于:tutorialspoint,如有侵犯,请联系admin@php.cn删除