Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program C# untuk mencipta rentetan daripada kandungan fail

Program C# untuk mencipta rentetan daripada kandungan fail

WBOY
WBOYke hadapan
2023-08-27 08:13:10610semak imbas

从文件内容创建字符串的 C# 程序

Pengenalan

Mari lihat cara membuat program C# untuk mencipta rentetan berdasarkan kandungan fail. Rentetan adalah bahagian penting dalam pemprosesan fail. Rentetan dalam C# ialah urutan huruf. Sebagai contoh, "TutorialsPoint" ialah nilai yang mengandungi 't' 'u' 't' 'o' 'r' 'i' 'a' 'l' 's' 'p' 'o' 'i' 'n' ' t String ' sebagai watak. Kami menggunakan kata kunci rentetan untuk mencipta rentetan.

Dalam istilah orang awam, pemprosesan fail atau pengurusan fail adalah pelbagai proses seperti membuat fail, membaca fail, menulis fail, melampirkan fail, dll. Melihat dan menulis fail ialah dua daripada operasi yang paling biasa dalam pengurusan fail. Kategori System.IO dalam C# termasuk kelas yang mengendalikan aliran input dan output.

Penciptaan rentetan ialah bahagian penting dalam pemprosesan fail. Di sini, teks lengkap dibaca dan kemudian dipindahkan ke rentetan. Terdapat dua cara untuk mencipta rentetan daripada kandungan fail. Dalam bahagian seterusnya kita akan melihat dua cara untuk membaca kandungan fail dan memindahkannya ke dalam rentetan.

1. Kaedah Fail.ReadAllText()

Ini adalah kaedah pertama untuk membaca keseluruhan kandungan fail sebagai rentetan. Di sini, kaedah File.ReadAllText() digunakan. File.ReadAllText() membaca semua kandungan daripada fail dan memindahkan kandungan ke dalam rentetan. Pengekodan fail ditentukan secara automatik oleh File.ReadAllText(). Pengekodan fail ditentukan oleh versi terlebih muatannya. Nah, mentakrifkan pengekodan, ia adalah sistem penomboran yang membolehkan memberikan nilai berangka kepada setiap aksara bertulis dalam set aksara. Aksara daripada huruf, nombor dan simbol lain boleh didapati dalam set aksara.

Semasa melaksanakan arahan untuk membuka fail, IOException akan dilemparkan jika fail sumber tidak ditemui atau sebarang jenis ralat I/O lain berlaku. Ini boleh berlaku jika terdapat sebarang masalah dengan input dan output fail.

Algoritma

Algoritma di bawah akan memberikan proses langkah demi langkah untuk mencipta rentetan daripada kandungan fail menggunakan kaedah File.ReadAllText().

Sebagai contoh, jika kita perlu membaca segala-galanya daripada fail dan kemudian memindahkan kandungan ke rentetan, maka kita harus menyediakan algoritma yang tepat seperti yang ditunjukkan di bawah -

Langkah 1 Buat contoh Nama fail untuk dibaca daripada fail dan berikan alamat.

Langkah 2 Gunakan File.ReadAllText untuk membaca dan memaparkan baris teks daripada fail dan menyimpannya dalam teks.

Langkah 3 Dengan menggunakan tangkapan, kami cuba menangkap ralat jika berlaku sebarang ralat.

Langkah 4 Jika terdapat sebarang ralat, simpan dalam e dan kemudian paparkan.

Langkah 5 Dengan menggunakan Console.Readkey(), kami menghentikan pelaksanaan program pada penghujungnya.

Contoh

Berikut ialah coretan kod yang menunjukkan contoh.

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

Output

Input is completed

Di sini, mula-mula laluan diberikan kepada rentetan dan kemudian rentetan itu diluluskan dan dibuka dari alamat itu. Kemudian salin keseluruhan kandungan ke dalam rentetan yang dibuat. Jika fail tidak boleh dibuka, ralat berlaku dan mesej mengelirukan muncul pada skrin. Terdapat cara lain untuk melakukan ini menggunakan kelas SteamReader. Mari kita lakukan perkara yang sama.

2. kaedah SteamReader.ReadToEnd()

Penyelesaian alternatif kepada File.ReadAllText() ialah SteamReader.ReadToEnd(). Ini juga membaca keseluruhan fail sekali gus dan menyalin kandungan ke dalam rentetan. Steam.Reader menggunakan kaedah File.OpenText untuk melakukan ini. Kemudian kaedah ReadToEnd() membaca fail lengkap yang disebut oleh pengguna sekali gus. Setelah kerja objek SteamReader selesai, kaedah Dispose() dipanggil secara automatik seperti Destructor() dan strim disiram/dikosongkan.

Algoritma

Algoritma di bawah akan menyediakan proses langkah demi langkah untuk mencipta rentetan daripada kandungan fail menggunakan kaedah SteamReader.ReadToEnd().

Sebagai contoh, jika kita perlu membaca segala-galanya daripada fail dan kemudian memindahkan kandungan ke rentetan, maka kita harus menyediakan algoritma yang tepat seperti yang ditunjukkan di bawah -

Langkah 1 Buat contoh Nama fail untuk dibaca daripada fail dan berikan alamat.

Langkah 2 Buat contoh StreamReader untuk membaca kandungan daripada fail.

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

Atas ialah kandungan terperinci Program C# untuk mencipta rentetan daripada kandungan fail. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam