>  기사  >  백엔드 개발  >  기존 파일에 텍스트를 추가하는 C# 프로그램

기존 파일에 텍스트를 추가하는 C# 프로그램

WBOY
WBOY앞으로
2023-09-18 09:19:321174검색

将文本附加到现有文件的 C# 程序

소개

추가란 이미 작성된 문서에 정보를 추가하는 것을 말합니다. 여기서는 기존 파일에 텍스트를 추가하는 C# 프로그램을 작성하는 방법을 배웁니다. 우리 모두 알고 있듯이 파일 처리는 C#으로 수행됩니다. 대부분의 경우 파일은 데이터를 저장하는 데 사용됩니다. 평신도의 관점에서 파일 처리 또는 파일 관리는 파일 생성, 파일 읽기, 파일 쓰기, 파일 추가 등과 같은 다양한 프로세스입니다.

기존 파일에만 해당되나요?

우리 모두 알고 있듯이 추가란 일반적으로 이미 작성된 문서에 정보를 추가하는 것을 의미합니다. 하지만 우리가 접근하려는 파일이 존재하지 않는다면 어떻게 될까요? 첨부하기 위해 "madrid.txt"라는 파일을 검색한다고 가정해 보겠습니다. 지정된 디렉터리에 파일이 있으면 해당 파일이 추가됩니다. 하지만 "madrid.txt" 파일이 존재하지 않는다면 어떻게 될까요? 그러면 프로그램은 정보를 추가할 수 있는 "madrid.txt"라는 새 파일을 생성합니다. 따라서 추가 모드에서 파일을 열려고 할 때 특정 파일이 존재하지 않으면 추가하려는 파일과 동일한 이름으로 새로운 빈 파일이 생성됩니다.

1. File.AppendAllText(String, String) 메소드

File.AppendAllText() 메서드는 기존 파일에 추가하는 문제에 대한 매우 일반적인 솔루션입니다. 이 메소드는 File 클래스에서 옵니다. 이 메소드의 구문은 다음과 같습니다.

으아아아

구문에서 첫 번째 문자열에는 첨부하려는 파일의 경로가 포함되어 있습니다. 그 후 파일에 추가하려는 정보는 다음과 같습니다. 이로 인해 몇 가지 예외가 발생할 수도 있습니다. 파일에 액세스하려는 디렉터리가 없으면 DirectoryNotFoundException이 발생합니다. 발생하는 또 다른 주요 예외는 UnauthorizedAccessException입니다. 이는 프로그래머가 읽기 전용 파일에 액세스하려고 하거나 지정된 경로가 파일 대신 디렉터리를 가리키는 경우에 발생합니다.

이 방법을 사용하면 발생한 예외에 관계없이 파일 핸들이 닫힙니다.

알고리즘

이제 File.AppendAllText()를 사용하여 파일에 정보를 추가하는 프로그램을 만드는 알고리즘에 대해 설명하겠습니다.

1단계 - 먼저 첨부할 파일의 주소를 저장할 문자열을 만든 후 파일의 주소를 제공합니다.

2단계 - 그런 다음 FileAppendAllText()를 사용하여 추가 모드에서 파일을 열고 특정 텍스트를 파일에 추가합니다. 파일이 없으면 해당 이름으로 새 파일이 생성되고 텍스트가 추가됩니다.

3단계 - 마지막으로 파일의 텍스트를 읽어서 파일이 첨부되었는지 확인하고 프로그램이 종료됩니다.

으아아아

출력

으아아아

그래서 파일의 경로가 제공되고 메소드는 지정된 파일을 열고 프로그래머가 원하는 정보를 추가한 다음 파일을 닫습니다. 충분히 간단하지만 파일의 전체 내용을 원하는 파일에 복사하려면 어떻게 해야 할까요? 예, 이 방법은 파일 복사 문제도 해결합니다. 이제 알고리즘에 대해 논의할 차례입니다.

알고리즘

이 알고리즘은 File.AppendAllText()를 사용하는 것에 관한 것입니다.

1단계 - 소스 파일 주소를 저장할 문자열을 만듭니다.

2단계 - 대상 파일의 주소를 저장할 또 다른 문자열을 만듭니다.

3단계 - File.Readlines()는 소스 파일을 문자열로 복사하는 데 사용됩니다.

4단계 - 파일은 File.AppendAllText()에 의해 추가 모드로 열립니다. 그런 다음 텍스트를 추가합니다.

5단계 - 프로그램이 완료되면 종료합니다.

으아아아

이제 또 다른 방법을 살펴보겠습니다.

2. File.AppendText() 메서드

SteamWriter 클래스는 매우 일반적인 클래스입니다. 파일을 작성하는 다양한 방법을 제공합니다. WriteLine() 또는 Write()는 스트림에 텍스트를 추가하는 데 사용할 수 있는 다양한 메서드입니다.

으아아아

UTF-8 인코딩으로 기존 파일에 텍스트를 추가하는 File.AppendAllText() 메서드를 사용하여 StreamWriter 인스턴스를 생성할 수 있습니다. 지정된 파일이 존재하지 않는 경우에도 새 파일을 생성합니다.

파일에 액세스하려는 디렉터리가 존재하지 않으면 DirectoryNotFoundException이 발생합니다. 발생하는 또 다른 주요 예외는 UnauthorizedAccessException입니다. 이는 프로그래머가 읽기 전용 파일에 액세스하려고 하거나 지정된 경로가 파일이 아닌 디렉터리를 가리키는 경우에 발생합니다.

알고리즘

이제 File.AppendText()를 사용하여 파일에 정보를 추가하는 프로그램을 만드는 알고리즘에 대해 설명하겠습니다.

1단계 - 먼저 첨부할 파일의 주소를 저장할 문자열을 만든 후 파일의 주소를 제공합니다.

2단계 - 이제 StreamReader의 인스턴스를 생성합니다. 이 단계에서는 파일을 추가 모드로 열고 파일에 텍스트를 추가합니다. File.AppendText()를 사용하여 텍스트를 추가합니다.

StreamReader.Write() 메서드는 추가에 사용됩니다. 사용자가 텍스트를 추가하려면 끝에 줄 종결자를 추가하십시오. StreamReader.WriteLine() 메서드를 사용합니다.

3단계 - 프로그램이 완료되면 종료합니다.

示例

// A program to append the file
using System;
using System.IO;

public class Program {
   public static void Main() {
      string loca = @"D:\madrid.txt";

      // Adding the text to the specified file
      using (StreamWriter sw = File.AppendText(loca)) {
         sw.Write("UCL"); //use sw.WriteLine(If you want to add line termination)
      }

      // Read the text from the appended file
      string txtappd = File.ReadAllText(loca);
      Console.WriteLine(txtappd);
   }
}

输出

UCL

StreamWriter(String, Boolean) 构造函数重载版本也相当于 File.AppendText()。而对于布尔参数,我们使用 true。

StreanWriter 算法(字符串、布尔值)

现在,我们将讨论创建一个程序以使用 StreamWriter(String, Boolean) 将信息添加到文件的算法。

第 1 步 - 首先,我们创建一个字符串来存储要附加的文件的地址,然后提供文件的地址

第 2 步 现在,我们创建 StreamReader 的实例。此步骤以追加模式打开文件并向文件添加文本。我们使用新的 Streamwriter() 来添加信息。在这里,我们使用 StreamReader.Write() 方法进行追加。但如果我们需要附加文本,然后在末尾添加行终止符,那么我们可以使用 StreamReader.WriteLine() 方法。

第 3 步 最后,从文件中读取文本,以便我们可以看到文件已附加,然后程序退出。

示例

// A program to append the file
using System;
using System.IO;

public class Program {
   public static void Main() {
      string loca = @"D:\madrid.txt";

      // Adding the text to the specified file
      using (StreamWriter sw = new StreamWriter(loca, true)) {
         sw.Write("UCL"); //use sw.WriteLine(If you want to add line termination)
      }

      // Read the text from the appended file
      string txtappd = File.ReadAllText(loca);
      Console.WriteLine(txtappd);
   } 
}

输出

UCL

时间复杂度

由于在这两个进程中,我们都使用文件处理。在第一个算法中,我们使用 File.AppendAllText(),在第二个算法中,我们使用 File.AppendText(),它们都只是附加文件。他们正在获取新文本并将其添加到文件末尾。所以,这两种方法的时间复杂度都是O(1)。

结论

在本文中,我们讨论了将文本附加到现有文件的不同方法。首先我们讨论了是否需要以及是否只能对现有文件进行。然后我们讨论了追加File.AppendAllText()和File.AppendText()的方法。最后,我们讨论了算法和算法的代码。

我们希望本文能够帮助您增强有关 C# 的知识。

위 내용은 기존 파일에 텍스트를 추가하는 C# 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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