Maison >développement back-end >Tutoriel C#.Net >Programme C# pour créer une chaîne à partir du contenu du fichier

Programme C# pour créer une chaîne à partir du contenu du fichier

WBOY
WBOYavant
2023-08-27 08:13:10689parcourir

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

Présentation

Voyons comment créer un programme C# pour créer une chaîne basée sur le contenu du fichier. Les chaînes font partie intégrante du traitement des fichiers. Une chaîne en C# est une séquence de lettres. Par exemple, "TutorialsPoint" est une valeur contenant 't' 'u' 't' 'o' 'r' 'i' 'a' 'l' 's' 'p' 'o' 'i' 'n' ' t String ' comme caractère. Nous utilisons le mot-clé string pour créer une chaîne.

En termes simples, le traitement ou la gestion de fichiers sont divers processus tels que la création de fichiers, la lecture de fichiers, l'écriture de fichiers, l'ajout de fichiers, etc. L'affichage et l'écriture de fichiers sont les deux opérations les plus courantes dans la gestion de fichiers. La catégorie System.IO en C# comprend des classes qui gèrent les flux d'entrée et de sortie.

La création de chaînes est une partie essentielle du traitement des fichiers. Ici, le texte complet est lu puis transféré dans une chaîne. Il existe deux manières de créer une chaîne à partir du contenu d'un fichier. Dans les sections suivantes, nous verrons deux manières de lire le contenu d'un fichier et de le transférer dans une chaîne.

1. Méthode File.ReadAllText()

C'est la première méthode pour lire l'intégralité du contenu d'un fichier sous forme de chaîne. Ici, la méthode File.ReadAllText() est utilisée. File.ReadAllText() lit tout le contenu du fichier et transfère le contenu dans une chaîne. L'encodage du fichier est déterminé automatiquement par File.ReadAllText(). L'encodage du fichier est déterminé par sa version surchargée. Eh bien, définissant le codage, c'est un système de numérotation qui permet de donner une valeur numérique à chaque caractère écrit dans un jeu de caractères. Les caractères des lettres, des chiffres et d'autres symboles peuvent être trouvés dans les jeux de caractères.

Lors de l'exécution d'une commande pour ouvrir un fichier, une IOException sera levée si le fichier source n'est pas trouvé ou si tout autre type d'erreur d'E/S se produit. Cela peut se produire s'il y a des problèmes avec l'entrée et la sortie du fichier.

Algorithme

L'algorithme ci-dessous donnera le processus étape par étape de création d'une chaîne à partir du contenu du fichier à l'aide de la méthode File.ReadAllText().

Par exemple, si nous devons tout lire à partir d'un fichier puis transférer le contenu vers une chaîne, alors nous devons fournir son algorithme précis comme indiqué ci-dessous -

Étape 1 Créez une instance de fileName à lire à partir du fichier et fournissez-lui une adresse.

Étape 2 Utilisez File.ReadAllText pour lire et afficher les lignes de texte du fichier et les stocker dans du texte.

Étape 3 En utilisant catch, nous essayons de détecter l'erreur si une erreur se produit.

Étape 4 S'il y a une erreur, stockez-la dans e puis affichez-la.

Étape 5 En utilisant Console.Readkey(), nous arrêtons l'exécution du programme à la fin.

Exemple

Ce qui suit est un extrait de code montrant l'exemple.

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

Sortie

Input is completed

Ici, le chemin est d'abord donné à une chaîne, puis la chaîne est transmise et ouverte à partir de cette adresse. Copiez ensuite l'intégralité du contenu dans la chaîne créée. Si le fichier ne peut pas être ouvert, une erreur se produit et des messages confus apparaissent à l'écran. Il existe une autre façon de procéder en utilisant la classe SteamReader. Faisons de même.

2. Méthode SteamReader.ReadToEnd()

Une solution alternative à File.ReadAllText() est SteamReader.ReadToEnd(). Cela lit également l'intégralité du fichier en une seule fois et copie le contenu dans une chaîne. Steam.Reader utilise la méthode File.OpenText pour ce faire. Ensuite, la méthode ReadToEnd() lit le fichier complet mentionné par l'utilisateur en une seule fois. Une fois le travail de l'objet SteamReader terminé, la méthode Dispose() est automatiquement appelée comme Destructor() et le flux est vidé/effacé.

Algorithme

L'algorithme ci-dessous fournira un processus étape par étape pour créer une chaîne à partir du contenu du fichier à l'aide de la méthode SteamReader.ReadToEnd().

Par exemple, si nous devons tout lire à partir d'un fichier puis transférer le contenu vers une chaîne, alors nous devons fournir son algorithme précis comme indiqué ci-dessous -

Étape 1 Créez une instance de fileName à lire à partir du fichier et fournissez-lui une adresse.

Étape 2 Créez une instance de StreamReader pour lire le contenu du fichier.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer