Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Programm zum Anhängen von Text an eine vorhandene Datei

C#-Programm zum Anhängen von Text an eine vorhandene Datei

WBOY
WBOYnach vorne
2023-09-18 09:19:321247Durchsuche

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

Einführung

Anhängen bezieht sich auf das Hinzufügen von Informationen zu einem bereits geschriebenen Dokument. Hier lernen wir, ein C#-Programm zu schreiben, um Text an eine vorhandene Datei anzuhängen. Wie wir alle wissen, erfolgt die Dateiverwaltung in C#. In den meisten Fällen werden Dateien zum Speichern von Daten verwendet. Laienhaft ausgedrückt sind Dateiverarbeitung oder Dateiverwaltung verschiedene Prozesse wie das Erstellen von Dateien, das Lesen von Dateien, das Schreiben von Dateien, das Anhängen von Dateien usw.

Nur für vorhandene Dateien?

Wie wir alle wissen, bedeutet Anhängen normalerweise das Hinzufügen einer Information zu einem bereits geschriebenen Dokument. Was aber, wenn die Datei, auf die wir zugreifen möchten, nicht existiert? Nehmen wir an, wir suchen nach einer Datei namens „madrid.txt“, um sie anzuhängen. Wenn die Datei im angegebenen Verzeichnis vorhanden ist, wird die Datei angehängt. Was aber, wenn die Datei „madrid.txt“ nicht existiert? Das Programm erstellt dann eine neue Datei mit dem Namen „madrid.txt“, in der Sie Ihre Informationen hinzufügen können. Wenn wir also versuchen, eine Datei im Anhängemodus zu öffnen und diese bestimmte Datei nicht existiert, wird eine neue leere Datei mit demselben Namen wie die Datei erstellt, die wir anhängen möchten.

1. File.AppendAllText(String, String)-Methode

Die Methode

File.AppendAllText() ist eine sehr häufige Lösung für das Problem des Anhängens an eine vorhandene Datei. Diese Methode stammt aus der File-Klasse. Die Syntax dieser Methode ist wie folgt.

public static void AppendAllText (string path, string? contents); 

In der Syntax enthält die erste Zeichenfolge den Pfad zu der Datei, die wir anhängen möchten. Danach möchten wir der Datei folgende Informationen hinzufügen. Dies kann auch einige Ausnahmen auslösen. Wenn das Verzeichnis, in dem wir versuchen, auf die Datei zuzugreifen, nicht existiert, wird eine DirectoryNotFoundException ausgelöst. Eine weitere wichtige Ausnahme ist UnauthorizedAccessException. Dies geschieht, wenn der Programmierer versucht, auf eine schreibgeschützte Datei zuzugreifen oder der angegebene Pfad auf ein Verzeichnis statt auf eine Datei verweist.

Bei Verwendung dieser Methode wird das Dateihandle unabhängig von der ausgelösten Ausnahme geschlossen.

Algorithmus

Jetzt besprechen wir den Algorithmus zum Erstellen eines Programms zum Hinzufügen von Informationen zu einer Datei mithilfe von File.AppendAllText().

Schritt 1 – Zuerst erstellen wir eine Zeichenfolge, um die Adresse der anzuhängenden Datei zu speichern und geben dann die Adresse der Datei an.

Schritt 2 – Dann verwenden wir FileAppendAllText(), um die Datei im Anhängemodus zu öffnen und den spezifischen Text zur Datei hinzuzufügen. Wenn die Datei nicht existiert, wird eine neue Datei mit dem Namen erstellt und der Text hinzugefügt.

Schritt 3 – Abschließend lesen Sie den Text aus der Datei, damit wir sehen können, dass die Datei angehängt ist, und dann wird das Programm beendet.

Beispiel

// 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 madrid.txt file
      File.AppendAllText(loca, Environment.NewLine + "UCL");

      // Reading the text from the madrid.txt file
      string txtappd = File.ReadAllText(loca);
      Console.WriteLine(txtappd);
   }
}

Ausgabe

UCL

Also wird der Pfad zur Datei angegeben, und dann öffnet die Methode die angegebene Datei, fügt die vom Programmierer gewünschten Informationen hinzu und schließt dann die Datei. Ganz einfach, aber was ist, wenn wir den gesamten Inhalt einer Datei in die gewünschte Datei kopieren möchten? Ja, diese Methode löst auch unser Problem des Kopierens von Dateien. Jetzt ist es an der Zeit, Algorithmen zu diskutieren.

Algorithmus

Bei diesem Algorithmus geht es um die Verwendung von File.AppendAllText().

Schritt 1 – Erstellen Sie eine Zeichenfolge zum Speichern der Quelldateiadresse.

Schritt 2 – Erstellen Sie eine weitere Zeichenfolge, um die Adresse der Zieldatei zu speichern.

Schritt 3 – File.Readlines() wird verwendet, um die Quelldatei in einen String zu kopieren.

Schritt 4 – Die Datei wird im Anhängemodus von File.AppendAllText() geöffnet. Fügen Sie dann Text hinzu.

Schritt 5 – Verlassen Sie das Programm, wenn das Programm abgeschlossen ist.

Beispiel

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

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

      // Copying all the text from the source file in a string and then adding to the destination file
      IEnumerable<string> inform = File.ReadLines(sttr1);
      File.AppendAllLines(sttr2, inform);
   }
} 

Schauen wir uns nun eine andere Methode an.

2. File.AppendText()-Methode

Die SteamWriter-Klasse ist eine sehr allgemeine Klasse. Es bietet viele Methoden zum Schreiben von Dateien. WriteLine() oder Write() sind verschiedene Methoden, mit denen Text zu einem Stream hinzugefügt werden kann.

public static System.IO.StreamWriter AppendText (string path); 

Sie können eine StreamWriter-Instanz mit der Methode File.AppendAllText() erstellen, die Text in UTF-8-Kodierung an eine vorhandene Datei anhängt. Außerdem wird eine neue Datei erstellt, wenn die angegebene Datei nicht vorhanden ist.

Wenn das Verzeichnis, auf das wir auf die Datei zugreifen möchten, nicht existiert, wird eine DirectoryNotFoundException ausgelöst. Eine weitere wichtige Ausnahme ist UnauthorizedAccessException. Dies geschieht, wenn der Programmierer versucht, auf eine schreibgeschützte Datei zuzugreifen oder der angegebene Pfad auf ein Verzeichnis statt auf eine Datei verweist.

Algorithmus

Jetzt besprechen wir den Algorithmus zum Erstellen eines Programms zum Hinzufügen von Informationen zu einer Datei mithilfe von File.AppendText().

Schritt 1 – Zuerst erstellen wir eine Zeichenfolge, um die Adresse der anzuhängenden Datei zu speichern und geben dann die Adresse der Datei an.

Schritt 2 – Jetzt erstellen wir eine Instanz von StreamReader. Dieser Schritt öffnet die Datei im Anhängemodus und fügt der Datei Text hinzu. Wir verwenden File.AppendText(), um Text hinzuzufügen.

StreamReader.Write()-Methode wird zum Anhängen verwendet. Wenn der Benutzer Text anhängen möchte, fügen Sie am Ende ein Zeilenendezeichen hinzu. Verwenden Sie die Methode StreamReader.WriteLine().

Schritt 3 – Beenden Sie, wenn das Programm abgeschlossen ist.

示例

// 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# 的知识。

Das obige ist der detaillierte Inhalt vonC#-Programm zum Anhängen von Text an eine vorhandene Datei. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen