Maison  >  Article  >  développement back-end  >  Programme C# pour lire un tableau d'octets et l'écrire dans un fichier à l'aide de la classe FileStream

Programme C# pour lire un tableau d'octets et l'écrire dans un fichier à l'aide de la classe FileStream

WBOY
WBOYavant
2023-08-29 16:21:041095parcourir

使用 FileStream 类读取字节数组并将其写入文件的 C# 程序

C# est un puissant langage de programmation orienté objet utilisé pour développer diverses applications. Dans cet article, nous verrons comment écrire un programme C# pour lire et écrire un tableau d'octets dans un fichier à l'aide de la classe FileStream.

Étape 1 : Créer un tableau d'octets

La première étape du programme consiste à créer un tableau d'octets que nous souhaitons écrire dans le fichier. Voici un exemple -

byte[] byteArray = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64 };

Étape 2 : Écrire un tableau d'octets dans un fichier

L'étape suivante consiste à écrire le tableau d'octets dans un fichier à l'aide de la classe FileStream. Nous devons créer une nouvelle instance de la classe FileStream et transmettre le chemin du fichier, FileMode, FileAccess et FileShare comme paramètres à son constructeur. Voici un exemple -

string filePath = "C:\MyFile.txt";
using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) {
   fileStream.Write(byteArray, 0, byteArray.Length);
}

Étape 3 : Lire le tableau d'octets à partir du fichier

Pour lire un tableau d'octets à partir d'un fichier, nous devons créer une nouvelle instance de la classe FileStream et transmettre le chemin du fichier, FileMode, FileAccess et FileShare comme paramètres à son constructeur. Nous créons ensuite un tableau d'octets et lisons le contenu du fichier dans le tableau d'octets à l'aide de la méthode Read() de la classe FileStream. Voici un exemple -

byte[] readByteArray = new byte[byteArray.Length];
using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
   fileStream.Read(readByteArray, 0, readByteArray.Length);
}

Étape 4 : Comparez les tableaux d'octets

Enfin, nous devons comparer le tableau d'octets d'origine et le tableau d'octets lu à partir du fichier pour nous assurer qu'ils sont identiques. Nous pouvons comparer deux tableaux d'octets en utilisant la méthode SequenceEqual() de la classe Enumerable. Voici un exemple -

bool areEqual = byteArray.SequenceEqual(readByteArray);

Exemple

Voici le programme C# complet -

using System;
using System.IO;
using System.Linq;

namespace ByteArrayToFile {
   class Program {
      static void Main(string[] args) {
         byte[] byteArray = { 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64 };
         string filePath = "C:\MyFile.txt";
         
         // Write byte array to file
         using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write, FileShare.None)) {
            fileStream.Write(byteArray, 0, byteArray.Length);
         }
         
         // Read byte array from file
         byte[] readByteArray = new byte[byteArray.Length];
         using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) {
            fileStream.Read(readByteArray, 0, readByteArray.Length);
         }

         // Compare the byte arrays
         bool areEqual = byteArray.SequenceEqual(readByteArray);
         Console.WriteLine("Are the byte arrays equal? " + areEqual);
      }
   }
}

Sortie

Are the byte arrays equal? True

Conclusion

Dans cet article, nous avons appris à écrire un programme C# pour lire et écrire des tableaux d'octets dans des fichiers à l'aide de la classe FileStream. Ce programme peut être utilisé dans une variété de scénarios, tels que la lecture et l'écriture de fichiers image ou audio. En comprenant les concepts abordés dans cet article, vous pouvez développer des applications plus avancées nécessitant une entrée et une sortie de fichier. J'espère que cet article vous a été utile dans votre parcours de programmation. Bon codage !

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
Article précédent:Initialiseur d'objet en C#Article suivant:Initialiseur d'objet en C#