首頁 > 後端開發 > C#.Net教程 > 將文字附加到現有文件的 C# 程序

將文字附加到現有文件的 C# 程序

WBOY
發布: 2023-09-18 09:19:32
轉載
1283 人瀏覽過

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

簡介

追加是指在已經寫好的文件中加入資訊。在這裡,我們將學習編寫一個 C# 程式將文字附加到現有文件中。眾所周知,文件處理是在 C# 中完成的。大多數情況下,文件用於儲存資料。通俗地說,文件處理或文件管理是各種過程,例如建立文件、讀取文件、寫入文件、附加文件等等。

僅適用於現有文件?

眾所周知,附加通常意味著在已經編寫的文檔中添加一條資訊。但是如果我們嘗試存取的文件不存在怎麼辦?假設我們正在搜尋一個名為「madrid.txt」的檔案來附加它。如果指定目錄中存在該文件,則附加該文件。但是如果檔案「madrid.txt」不存在怎麼辦?然後,程式會建立一個名為「madrid.txt」的新文件,您可以在其中新增資訊。因此,當我們嘗試以追加模式開啟文件時,如果該特定文件不存在,則會建立新的空文件,其名稱與我們要追加的文件的名稱相同。

1。 File.AppendAllText(String, String) 方法

File.AppendAllText() 方法是解決追加到現有檔案問題的一個非常常見的解決方案。該方法來自 File 類別。該方法的語法如下。

public static void AppendAllText (string path, string? contents); 
登入後複製

在語法中,第一個字串包含我們要附加的檔案的路徑。之後,我們要新增到文件中的資訊如下。這也可能引發一些異常。如果我們嘗試存取該檔案的目錄不存在,則會拋出 DriectoryNotFoundException。另一個主要拋出的例外是 UnauthorizedAccessException。當程式設計師嘗試存取的檔案是唯讀檔案或指定的路徑指向目錄而不是檔案時,就會發生這種情況。

使用此方法時,無論拋出異常,檔案句柄都會關閉。

演算法

現在,我們將討論建立一個程式以使用 File.AppendAllText() 將資訊新增至檔案的演算法。

第 1 步 - 首先,我們建立一個字串來儲存要附加的檔案的位址,然後提供檔案的位址。

步驟 2 - 然後我們使用 FileAppendAllText() 以追加模式開啟檔案並將特定文字新增至檔案。如果該檔案不存在,則會使用該名稱建立新檔案並新增文字。

步驟 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 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);
   }
}
登入後複製

輸出

UCL
登入後複製
登入後複製
登入後複製

因此,提供了文件的路徑,然後該方法打開指定的文件,添加程式設計師想要的信息,然後關閉該文件。很簡單,但是如果我們想將一個文件的全部內容複製到我們想要的文件中呢?是的,這個方法也解決了我們複製文件的問題。現在是討論演算法的時候了。

演算法

演算法是關於使用 File.AppendAllText() 的。

第 1 步 - 建立一個用於儲存來源檔案位址的字串。

步驟 2 - 建立另一個字串來儲存目標檔案的位址。

步驟 3 - File.Readlines() 用於複製字串中的來源檔案。

步驟 4 - 檔案由 File.AppendAllText() 以附加模式開啟。然後添加文字。

步驟 5 - 程式完成後退出。

範例

// 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);
   }
} 
登入後複製

現在讓我們看看另一種方法。

2。 File.AppendText() 方法

SteamWriter 類別是一個非常通用的類別。它提供了很多寫入文件的方法。 WriteLine() 或 Write() 是可用於新增文字文字的不同方法。

public static System.IO.StreamWriter AppendText (string path); 
登入後複製

可以使用 File.AppendAllText() 方法建立 StreamWriter 實例,該方法將文字以 UTF-8 編碼附加到現有檔案中。如果指定的檔案不存在,它也會建立一個新檔案。

如果我們嘗試存取該檔案的目錄不存在,則會拋出 DriectoryNotFoundException。另一個主要拋出的例外是 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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板