首頁 >後端開發 >C#.Net教程 >從檔案內容建立字串的 C# 程序

從檔案內容建立字串的 C# 程序

WBOY
WBOY轉載
2023-08-27 08:13:10677瀏覽

从文件内容创建字符串的 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(),我們在最後停止了程式的執行。

範例

以下是顯示該範例的程式碼片段。

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 {
         // Display the lines that are read from the file
         string text = File.ReadAllText(fileName);
         Console.WriteLine(text);
      }
      catch (Exception e) {
         // Displays the error on the screen.
         Console.WriteLine("The file could not be read:");
         Console.WriteLine(e.Message);
      }
      Console.ReadKey();
   }
}

輸出

Input is completed

這裡,首先將路徑提供給一個字串,然後從該位址傳遞並開啟該字串。然後將整個內容複製到創建的字串中。如果無法開啟文件,則會發生錯誤,並且螢幕上會顯示混亂的訊息。還有另一種方法可以使用 SteamReader 類別來執行此操作。讓我們也這樣吧。

2。 SteamReader.ReadToEnd() 方法

File.ReadAllText() 的替代解決方案是 SteamReader.ReadToEnd()。這也會一次性讀取完整的文件,然後將內容複製到字串中。 Steam.Reader 使用 File.OpenText 方法來執行此操作。然後ReadToEnd()方法一次讀取使用者提到的完整檔案。 SteamReader 物件的工作完成後,會像 Destructor() 一樣自動呼叫 Dispose() 方法,並重新整理/清除流。

演算法

下面的演算法將提供使用 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刪除