Heim  >  Artikel  >  Backend-Entwicklung  >  BinaryWriter in C#

BinaryWriter in C#

WBOY
WBOYOriginal
2024-09-03 15:22:35238Durchsuche

In C# ist BinaryWriter eine Klasse, die zum Schreiben primitiver Typen als Binärdaten in einen bestimmten Codierungsstream verwendet wird. Es ist im System.IO-Namespace vorhanden.

Im Folgenden finden Sie einige wichtige Punkte zu BinaryWriter:

  • BinaryWriter wird zum Erstellen von Binärdateien verwendet.
  • BinaryWriter kann zum Schreiben von Zeichenfolgen in einer bestimmten Codierung verwendet werden.
  • Um ein Objekt von BinaryWriter zu erstellen, müssen wir ein Objekt von Stream an den Konstruktor der BinaryWriter-Klasse übergeben.
  • Wenn wir beim Erstellen des BinaryWriter-Objekts keine Kodierung angeben, wird standardmäßig die UTF-8-Kodierung verwendet.

Syntax mit Erklärung

Der Konstruktor zum Erstellen eines BinaryWriter-Objekts ist in vier überladenen Formen verfügbar. Die Syntax zum Erstellen eines BinaryWriter-Objekts unter Verwendung aller seiner überladenen Konstruktoren lautet wie folgt:

Syntax #1

protected BinaryWriter();

Es wird verwendet, um eine Instanz der BinaryWriter-Klasse zu initialisieren.

Syntax #2

BinaryWriter binaryWriter = new BinaryWriter(outputStream) ;

Die obige Anweisung initialisiert eine neue Instanz der BinaryWriter-Klasse auf der Grundlage des angegebenen Streams (outputStream) und unter Verwendung der UTF-8-Zeichenkodierung.

Syntax #3

BinaryWriter binaryWriter = new BinaryWriter(outputStream, encoding);

Die obige Anweisung initialisiert eine neue Instanz von BinaryWriter basierend auf dem angegebenen Stream (outputStream) und der Zeichencodierung (encoding).

Syntax #4

BinaryWriter binaryWriter = new BinaryWriter(outputStream, encoding, true);
  • Die obige Anweisung funktioniert ähnlich wie die zweite und die dritte Anweisung, außer dass sie über einen zusätzlichen Parameter vom Datentyp Boolean verfügt, mit dem angegeben werden kann, ob der Ausgabestream geöffnet bleiben soll, nachdem das BinaryWriter-Objekt verworfen wurde.
  • Um den Stream geöffnet zu lassen, sollte der Wert des booleschen Parameters auf „true“ gesetzt werden, andernfalls sollte er auf „false“ gesetzt werden.
  • Wir können das Objekt der BinaryWriter-Klasse innerhalb des „using“-Blocks erstellen, sodass der vom Objekt belegte Speicher automatisch freigegeben wird, wenn die Arbeit des Objekts abgeschlossen ist und es nicht mehr benötigt wird.

Code:

using (BinaryWriter binaryWriter = new BinaryWriter(File.Open(fileName, FileMode.Create )) )
{
//user code
}

Hier gibt die File.Open()-Methode das FileStream-Objekt zurück, das beim Erstellen einer Instanz von BinaryWriter hilft.

Wie funktioniert BinaryWriter in C#?

  • In C# wird BinaryWriter verwendet, um Binärdaten in eine Datei zu schreiben, oder wir können sagen, dass er zum Erstellen von Binärdateien verwendet wird. Es hilft uns, primitive Datentypen im Binärformat in einen Stream zu schreiben. Es hilft uns auch, Zeichenfolgen in einer bestimmten Zeichenkodierung zu schreiben.
  • Um mit BinaryWriter zu arbeiten, ist es notwendig, den System.IO-Namespace in das Programm zu importieren. Dann können wir das Objekt der BinaryWriter-Klasse erstellen, indem wir den Operator „new“ verwenden und ein Stream-Objekt an den Konstruktor von BinaryWriter übergeben.
  • Um eine Instanz von BinaryWriter zu erstellen, stellen wir seinem Konstruktor im Allgemeinen ein Stream-Objekt zur Verfügung. Gleichzeitig können wir einen optionalen Parameter bereitstellen, der die beim Schreiben der Datei zu verwendende Codierung angibt. Falls der Benutzer keine Zeichenkodierung angibt, wird standardmäßig die UTF-8-Kodierung verwendet.
  • Es gibt einen weiteren optionalen Parameter, der beim Erstellen des BinaryWriter-Objekts an den Konstruktor übergeben werden kann. Dieser Parameter ist vom Typ Boolean und wird verwendet, um anzugeben, ob der Benutzer möchte, dass der aktuelle Stream geöffnet bleibt oder nicht, nachdem das BinaryWriter-Objekt verworfen wurde.
  • Die BinaryWriter-Klasse bietet verschiedene Write()-Methoden für verschiedene Datentypen. Mit diesen Methoden werden Daten in die Binärdatei geschrieben. Die Methode „Write(Int32)“ wird verwendet, um eine vorzeichenbehaftete Vier-Byte-Ganzzahl in den aktuellen Stream zu schreiben und außerdem die Stream-Position um vier Bytes voranzutreiben.

Methoden von BinaryWriter

Die folgende Tabelle zeigt Details einiger Write()-Methoden von BinaryWriter für verschiedene Datentypen:

Method Description
Write(Boolean) This method is used to write the one-byte Boolean value to the present stream; 0 represents false while 1 represents true.
Write(Byte) This method is used to write an unsigned byte to the present stream and then it advances the position of the stream by one byte.
Write(Char) This method is used to write Unicode character to present stream and also it advances the present stream position according to the character encoding used and according to the characters being written to the present stream.
Write(Decimal) This method is used to write a decimal value to the present stream and also it advances the position of the current stream by sixteen bytes.
Write(Double) This method is used to write an eight-byte floating-point value to the present stream and then it also advances the position of the current stream by eight bytes.
Write(Int32) This method is used to write a four-byte signed integer to the present stream and then it advances the position of current stream by four bytes.
Write(String) This method is used to write length prefixed string to present stream in the present encoding of BinaryWriter and also it advances the current stream position according to the encoding used and according to the characters being written to the present stream.

Examples to Implement BinaryWriter in C#

Example showing the creation of file:

Code:

using System;
using System.IO;
namespace ConsoleApp4
{
public class Demo
{
string fileLocation = "E:\\Content\\newBinaryFile.dat";
public void WritingFile()
{
try
{
//checking if file exists
if (File.Exists(fileLocation))
{
File.Delete(fileLocation);
}
FileStream fileStream = new FileStream(fileLocation, FileMode.Create,
FileAccess.Write, FileShare.ReadWrite);
//creating binary file using BinaryWriter
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
//writing data using different Write() methods
//of BinaryWriter
binaryWriter.Write(5253);
binaryWriter.Write("This is a string value.");
binaryWriter.Write('A');
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
public void ReadingFile()
{
try
{
FileStream fileStream = new FileStream(fileLocation, FileMode.Open,
FileAccess.Read, FileShare.ReadWrite);
using (BinaryReader binaryReader = new BinaryReader(fileStream))
{
Console.WriteLine("IntegerValue = " + binaryReader.ReadInt32());
Console.WriteLine("StringValue = " + binaryReader.ReadString());
Console.WriteLine("CharValue = " + binaryReader.ReadChar());
}
}
catch (Exception exception)
{
Console.WriteLine(exception.Message);
}
}
}
public class BinaryWriterDemo
{
static void Main(string[] args)
{
Demo demoObj = new Demo();
demoObj.WritingFile();
demoObj.ReadingFile();
Console.ReadLine();
}
}
}

Output:

BinaryWriter in C#

Conclusion

In C#, the BinaryWriter class is used to write primitive types as binary information to the stream. If the encoding is not defined, then the BinaryWriter class uses the default UTF-8 character encoding to write data to a binary file. An object of BinaryWriter can be created using the Stream object.

Das obige ist der detaillierte Inhalt vonBinaryWriter in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:DataReader C#Nächster Artikel:DataReader C#