Lecteur binaire C#

WBOY
Libérer: 2024-09-03 15:22:40
original
488 Les gens l'ont consulté

En C#, BinaryReader est une classe utilisée pour gérer les données binaires. Il se trouve sous l’espace de noms System.IO. BinaryReader est utilisé pour lire des types de données primitifs sous forme de valeurs binaires dans un flux de codage particulier. BinaryReader fonctionne avec l'objet Stream, c'est-à-dire que pour créer un objet de BinaryReader, nous devons transmettre l'objet Stream dans son constructeur. La classe BinaryReader dispose de trois constructeurs surchargés pour travailler avec des données binaires. Par défaut, BinaryReader utilise le codage UTF-8 pour lire les données jusqu'à ce que nous spécifiions d'autres codages de caractères lors de la création de son objet.

Syntaxe avec explication

Nous pouvons créer un objet de BinaryReader de trois manières comme indiqué ci-dessous :

BinaryReader binary_reader = new BinaryReader(inputStream);
Copier après la connexion

L'instruction ci-dessus initialise une nouvelle instance de BinaryReader basée sur le flux spécifié (inputStream) en utilisant l'encodage UTF-8.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding);
Copier après la connexion

Cette instruction initialise une nouvelle instance de BinaryReader en fonction du flux spécifié (inputStream) et de l'encodage spécifié par encoding.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding, true);
Copier après la connexion
Copier après la connexion

Cette instruction fonctionne de la même manière que les deux instructions ci-dessus avec un paramètre supplémentaire de type Boolean qui est utilisé pour spécifier si l'utilisateur souhaite laisser le flux ouvert après la suppression de l'objet de BinaryReader. Ce paramètre doit être « vrai » pour laisser le flux ouvert, sinon il doit être « faux ».

En dehors de ces trois manières, nous pouvons également créer BinaryReader en utilisant les instructions suivantes :

using(BinaryReader binary_reader = new BinaryReader(File.Open(file_path, FileMode.Open)))
{
//user code
}
Copier après la connexion

Dans l'instruction ci-dessus, la méthode File.Open() renvoie un objet de FileStream et aide ainsi à créer l'objet de BinaryReader.

L'avantage de créer un objet à l'intérieur du bloc « using » est qu'il libère la mémoire détenue par l'objet lorsque le travail de l'objet est terminé et qu'il n'est plus nécessaire.

Comment fonctionne BinaryReader en C# ?

BinaryReader est utilisé pour lire des informations binaires, c'est-à-dire qu'il est utilisé pour lire des données stockées dans des fichiers binaires. Le fichier binaire stocke les données d'une manière qui peut être facilement comprise par une machine, mais pour l'homme, il est très difficile de comprendre ces données. Pour aider à comprendre ces données, BinaryReader est utilisé. Afin de travailler avec BinaryReader, nous devons d'abord importer l'espace de noms System.IO dans notre code. Après cela, nous devons créer une instance de BinaryReader à l'aide d'un « nouvel » opérateur et en contournant l'objet Stream à l'intérieur du constructeur de BinaryReader.

Lors de la création d'une instance de BinaryReader, nous fournissons un flux à partir duquel lire, puis nous pouvons éventuellement spécifier le codage de caractères à utiliser si nous ne spécifions pas le codage, par défaut le codage UTF-8 est utilisé. Parallèlement à cela, nous pouvons éventuellement spécifier si nous souhaitons que le flux soit ouvert après la suppression de l'objet de BinaryReader, comme indiqué dans l'instruction ci-dessous.

BinaryReader binary_reader = new BinaryReader(inputStream, encoding, true);
Copier après la connexion
Copier après la connexion

Ensuite, à l'aide de différentes méthodes Read() de BinaryReader qui sont fournies pour différents types de données, nous pouvons lire les données du fichier.

BinaryReader possède de nombreuses méthodes Read() qui prennent en charge différents types de données et sont utilisées pour lire les types de données primitifs à partir d'un flux. Par exemple, la méthode ReadString() de BinaryReader est utilisée pour lire l'octet suivant en tant que valeur de chaîne et avance également la position actuelle dans le flux d'un octet.

Méthodes Read() de BinaryReader pour différents types de données dans le tableau suivant :

Method Description
Read() It is used to read characters from an underlying stream and it also advances the current position of the stream according to the Encoding used and the specific character being read from the stream.
ReadBoolean() It is used to read the Boolean value from the stream and it also advances the current position of the stream by one byte.
ReadByte() It is used to read the next byte from the current stream and it also advances the current position of the stream by one byte.
ReadChar() It is used to read the next character from the current stream and it also advances the current position of the stream according to the Encoding used and the specific character being read from the stream.
ReadDecimal() It is used to read the decimal value from the current stream and it also advances the current position of the stream by sixteen bytes.
ReadDouble() It is used to read an 8-byte floating-point value from the current stream and advances the current position of the stream by eight bytes.
ReadInt32() It is used to read a 4-byte signed integer from the current stream and also it advances the current position of the stream by four bytes.
ReadString() It is used to read a string from the current stream.

Example of C# Binaryreader

Example of creating a file using BinaryWriter and reading it using BInaryReader.

Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApp4
{
public class Program
{
string filePath = "E:\\Content\\binaryFile.dat";
public void WriteFile()
{
try
{
//checking if the file already exists
if (File.Exists(filePath))
{
File.Delete(filePath);
}
FileStream stream = new FileStream(filePath, FileMode.OpenOrCreate,
FileAccess.Write, FileShare.ReadWrite);
//creating binary file using BinaryWriter
using (BinaryWriter writer = new BinaryWriter(stream))
{
writer.Write("This is string");
writer.Write(100.53);
writer.Write(true);
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
public void ReadFile()
{
try
{
//creating an object of Stream
FileStream stream = new FileStream(filePath, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
//creating BinaryReader using Stream object
using (BinaryReader reader = new BinaryReader(stream))
{
//reading data using Read() methods of different data types
Console.WriteLine("String Value : " + reader.ReadString());
Console.WriteLine("Double Value : " + reader.ReadDouble());
Console.WriteLine("Boolean Value : " + reader.ReadBoolean());
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
public class BinaryReaderDemo
{
static void Main(string[] args)
{
Program obj = new Program();
obj.WriteFile();
obj.ReadFile();
Console.ReadKey();
}
}
}
Copier après la connexion

Output:

Lecteur binaire C#

Conclusion

BinaryReader is used to read primitive data types as binary values in a specific encoding stream. If not defined explicitly, by default BinaryReader uses UTF-8 encoding to read data. Stream object needs to be passed inside the constructor of BinaryReader in order to create its instance.

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!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!