>  기사  >  백엔드 개발  >  파일 내용에서 문자열을 생성하는 C# 프로그램

파일 내용에서 문자열을 생성하는 C# 프로그램

WBOY
WBOY앞으로
2023-08-27 08:13:10610검색

从文件内容创建字符串的 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()를 사용하여 마지막에 프로그램 실행을 중지합니다.

다음은 예시를 보여주는 코드 조각입니다.

으아악

출력

으아악

여기서는 먼저 문자열에 경로를 지정한 다음 해당 주소에서 문자열을 전달하여 엽니다. 그런 다음 전체 내용을 생성된 문자열에 복사합니다. 파일을 열 수 없으면 오류가 발생하고 화면에 혼란스러운 메시지가 나타납니다. 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";
      // 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();
   }
} 

输出

Input is completed

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

The given example creates a new ASCII StreamReader from a file with byte order mark recognition set to true.

示例

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();
   }
}

输出

Input is completed

时间复杂度

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

结论

在本文中,我们广泛讨论了从文件内容创建字符串的 C# 程序。首先,我们讨论了字符串,然后讨论了将文件的完整内容读取到字符串中的不同类型的方法。我们希望本文能够帮助您增强有关 C# 的知识。

위 내용은 파일 내용에서 문자열을 생성하는 C# 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제