C# 程序根据文件内容创建字符串
简介
让我们看看如何创建一个 C# 程序来根据文件内容创建字符串。字符串是文件处理不可或缺的一部分。C# 中的字符串是一系列字母。例如,"TutorialsPoint"是一个包含 't' 'u' 't' 'o' 'r' 'i' 'a' 'l' 's' 'p' 'o' 'i' 'n' 't' 作为字符的字符串。我们使用 string 关键字来创建字符串。
文件处理或文件管理,用外行的话来说,就是创建文件、读取文件、写入文件、附加文件等各种过程。查看和写入文件是文件管理中最常见的两种操作。C# 中的 System.IO 类别包括处理输入和输出流的类。
字符串创建是文件处理的关键部分。在这里,完整的文本被读取,然后传输到字符串中。有两种方法可以从文件内容中创建字符串。在接下来的部分中,我们将看到两种读取文件内容并将其传输到字符串中的方法。
1. File.ReadAllText() 方法
这是第一个以字符串形式读取文件所有内容的方法。这里使用 File.ReadAllText() 方法。File.ReadAllText() 从文件中读取所有内容,然后将内容传输到字符串中。文件的编码由 File.ReadAllText() 自动确定。文件的编码由其重载版本确定。好吧,定义编码,它是一个数字系统,允许字符集中的每个书写字符具有数值。字母、数字和其他符号中的字符都可以在字符集中找到。
执行打开文件的命令时,如果未找到源文件或发生任何其他类型的 I/O 错误,则会抛出 IOException。如果文件的输入和输出出现任何问题,就会发生这种情况。
算法
以下算法将逐步说明如何使用 File.ReadAllText() 方法从文件内容创建字符串。
例如,如果我们必须从文件中读取所有内容,然后将内容转换为字符串,那么我们应该提供其精确的算法,如下所示 -
步骤 1 - 创建一个实例 fileName 以从文件中读取并为其提供地址。
步骤 2 - 使用 File.ReadAllText 从文件中读取和显示文本行并将其存储在文本中。
步骤3 − 如果发生任何错误,我们会使用 catch 尝试捕获该错误。
步骤 4 − 如果有任何错误,则将其存储在 e 中,然后显示。
步骤 5 − 通过使用 Console.Readkey(),我们在最后暂停程序的执行。
示例
以下是显示示例的代码片段。
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Example {
public static void Main() {
string fileName = @"C:\some\path\file.txt";
try {
// 显示从文件读取的行
string text = File.ReadAllText(fileName);
Console.WriteLine(text);
}
catch (Exception e) {
// 在屏幕上显示错误。
Console.WriteLine("The file could not be read:");
Console.WriteLine(e.Message);
}
Console.ReadKey();
}
}
输出
Input is completed
在这里,首先将路径提供给字符串,然后从地址传递并打开该字符串。然后将整个内容复制到创建的字符串中。如果无法打开文件,则会发生错误,屏幕上会显示混乱。还有另一种方法,即使用 SteamReader 类。让我们也这样做。
2. SteamReader.ReadToEnd() 方法
File.ReadAllText() 的替代解决方案是 SteamReader.ReadToEnd()。这也会一次性读取整个文件,然后将内容复制到字符串中。Steam.Reader 使用 File.OpenText 方法执行此操作。然后 ReadToEnd() 方法一次性读取用户提到的整个文件。 SteamReader 对象的工作完成后,将自动调用 Dispose() 方法,就像 Destructor() 一样,这会刷新/清除流。
算法
下面的算法将逐步说明如何使用 SteamReader.ReadToEnd() 方法从文件内容创建字符串。
例如,如果我们必须从文件中读取所有内容,然后将内容传输到字符串,那么我们应该提供其精确的算法,如下所示 -
步骤 1 - 创建一个实例 fileName 以从文件中读取并为其提供地址。
步骤2 − 创建 StreamReader 实例,用于从文件读取内容。
步骤 3 − 使用 SteamReader.ReadToEnd() 从文件中读取文本行并将其存储在变量文本中。
步骤 4 − 现在我们使用 Console.Writeline() 写入文本数据。
步骤 5 − 通过使用 Console.Readkey(),我们在最后暂停程序的执行。
现在,让我们看看代码。
示例
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Example {
public static void Main() {
string fileName = @"C:\some\path\file.txt";
// 创建 StreamReader 的实例 strRead,用于从给定文件中读取文本
using (StreamReader strRead = File.OpenText(fileName)) {
string text = strRead.ReadToEnd();
Console.WriteLine(text);
}
Console.ReadKey();
}
}
输出
Input is completed
当我们使用 File.OpenText() 时,默认情况下会打开现有的 UTF-8 编码文件。要访问具有不同字符编码的文件,需要使用 StreamReader 类构造函数来接受替代字符编码。
给定的示例从字节顺序标记识别设置为 true 的文件中创建一个新的 ASCII StreamReader。
示例
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
public class Example {
public static void Main() {
string fileName = @"C:\some\path\file.txt";
// 创建 StreamReader 的实例 strRead,用于从给定文件中读取文本
using (StreamReader strRead = new StreamReader(fileName, Encoding.ASCII, true)) {
string text = strRead.ReadToEnd();
Console.WriteLine(text);
}
Console.ReadKey();
}
}
输出
Input is completed
时间复杂度
在这两个代码中,我们可以看到没有循环,因为我们只是创建了一个实例来读取文件。然后将文件的所有内容复制到字符串中。对于 File.ReadAllText() 方法,时间复杂度为 O(1)。同样,在 SteamReader.ReadToEnd() 方法中,时间复杂度为 O(1)。
结论
在本文中,我们广泛讨论了从文件内容创建字符串的 C# 程序。首先,我们讨论了字符串,然后讨论了将文件的完整内容读入字符串的不同类型的方法。我们希望本文能帮助您增强对 C# 的了解。

