用 C#编写程序从文件内容创建字符串

用 C# 编写程序从文件内容创建字符串

简介

让我们看看如何创建一个 C# 程序来从文件内容创建一个字符串。字符串是文件处理的一个重要部分。C# 中的字符串是一系列的字母。例如,”TutorialsPoint” 是一个包含 ‘t’ ‘u’ ‘t’ ‘o’ ‘r’ ‘i’ ‘a’ ‘l’ ‘s’ ‘p’ ‘o’ ‘i’ ‘n’ ‘t’ 的字符的字符串。我们使用字符串关键字来创建一个字符串。

在白话中,文件处理或文件管理是指诸如制作文件、从中读取、写入、追加等各种进程。查看和写入文件是文件管理中最常见的两个操作。C# 中的 System.IO 类包括处理输入和输出流的类。

字符串创建是文件处理的一个重要部分。在这里,完整的文本会被读取,然后传输到字符串中。好了,有两种方法可以从文件内容创建字符串。在接下来的章节中,我们将看到两种方法来读取文件的内容并将其传输到字符串中。

1. File.ReadAllText() 方法

这是第一种用字符串读取文件中所有内容的方法。在这里,使用 File.ReadAllText() 方法。File.ReadAllText() 读取文件的全部内容,然后将其传输到字符串中。文件的编码由 File.ReadAllText() 自动确定。文件的编码由它的重载版本确定。好了,定义编码是一个将数字值分配给字符集中的每个写入字符的编号系统,可在字符集中找到字母、数字和其他符号的字符。

当执行打开文件的命令时,如果找不到源文件或发生任何其他类型的输入输出错误,则会抛出一个 IOException,如果文件的输入输出有任何问题,那么就会发生这种情况。

算法

以下算法将提供一个步骤,通过使用 File.ReadAllText() 方法从文件内容创建字符串。

例如,如果我们必须从文件中读取所有内容,然后将内容传输到一个字符串中,那么我们应该提供其精确算法如下 −

步骤 1 − 创建 fileName 实例来从文件中读取,并为其提供一个地址。

步骤 2 − 使用 File.ReadAllText 读取并显示来自文件的文本行,将其存储在 text 中。

步骤 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("无法读取文件:");
         Console.WriteLine(e.Message);
      }
      Console.ReadKey();
   }
}

输出

输入已完成

这里,首先向字符串传递路径,然后从地址打开该路径。然后将整个内容复制到创建的字符串中。如果文件无法打开,会出现错误,并在屏幕上显示出错误信息。还有另一种方法可以使用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()读取文件的文本行,并将其存储在变量text中。

步骤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";
      // Creating an instance strRead of StreamReader for reading text from the given file
      using (StreamReader strRead = File.OpenText(fileName)) {
         string text = strRead.ReadToEnd();
         Console.WriteLine(text);
      }
      Console.ReadKey();
   }
} 

输出

输入已完成 

当我们使用File.OpenText()时,默认情况下会打开现有的UTF-8编码文件。要访问具有不同字符编码的文件,需要使用StreamReader类构造函数,它接受替代字符编码。

给定的示例从具有字节顺序标记识别设置为真的文件创建一个新的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";
      // Creating an instance strRead of StreamReader for reading text from the given file
      using (StreamReader strRead = new StreamReader(fileName, Encoding.ASCII, true)) {
         string text = strRead.ReadToEnd();
         Console.WriteLine(text);
      }
      Console.ReadKey();
   }
}

输出

输入已完成

时间复杂度

在这两个代码中,我们没有看到任何循环,因为我们只是创建一个实例来读取文件。然后将文件的所有内容复制到字符串中。对于File.ReadAllText()方法,时间复杂度为O(1)。同样,在SteamReader.ReadToEnd()方法中,时间复杂度为O(1)。

结论

在本文中,我们广泛讨论了使用C#程序从文件的内容创建字符串。首先,我们谈到了字符串,然后讨论了将完整文件内容读入字符串的不同方式。我们希望本文能帮助你增加对C#的了解。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程