Untersuchen der BinaryReader- und BinaryWriter-Klassen

Abgeschlossen

Binärdateien sind Dateien, die Daten in einem Format enthalten, das nicht lesbar ist. Sie werden häufig zum Speichern komplexer Datenstrukturen, Bilder, Audio, Video und anderer Arten von Inhalten verwendet. Binärdateien können im Vergleich zu Textdateien im Vergleich zu Textdateien effizienter sein, insbesondere bei großen Datenmengen. Binärdateien sollen normalerweise nicht von Menschen geöffnet und gelesen werden, da sie Daten in einem Format enthalten können, das für eine bestimmte Anwendung oder ein bestimmtes System spezifisch ist. Stattdessen sind sie so konzipiert, dass sie von Software verarbeitet werden, die das Binärformat versteht.

Die BinaryReader Klassen sind BinaryWriter Teil von . Der Namespace von System.IO NET ist für das Lesen und Schreiben von Binärdaten konzipiert. Es ist wichtig, dass Entwickler wissen, wann und wie Sie dateien und Datenstrom-Manipulationen effektiv verwenden BinaryReader und BinaryWriter verwenden.

Untersuchen von Anwendungsfällen für BinaryReader und BinaryWriter

Obwohl die Verwendung StreamReader und StreamWriter häufig für Textdateivorgänge ausreichend ist, gibt es Szenarien, die eine Verwendung BinaryReader erfordern und BinaryWriter. Im Folgenden finden Sie einige häufige Fälle, in denen Sie auf Binärdateien stoßen und/oder BinaryReaderfolgendes verwenden müssenBinaryWriter:

  • Konfigurationsdateien: Einige Anwendungen verwenden Binäre Konfigurationsdateien zum Speichern von Einstellungen und Einstellungen. Möglicherweise müssen Sie diese Dateien lesen oder schreiben, um Anwendungskonfigurationen zu verwalten.
  • Daten serialisierung: Binärdateien werden häufig für die Daten serialisierung verwendet, wobei komplexe Datenstrukturen in ein Binärformat für die Speicherung oder Übertragung konvertiert werden. Dies ist hilfreich zum Speichern von Spieldaten, Einstellungen oder anderen strukturierten Daten.
  • Multimediaspeicher: Binärdateien werden verwendet, um Multimediainhalte wie Bilder, Audio und Video zu speichern. Sie können bei der Verarbeitung von Mediendateien in ihren Anwendungen mit Binärdateien arbeiten.
  • Netzwerkkommunikation: Binäre Dateien werden in der Netzwerkkommunikation verwendet, um Daten effizient zu übertragen. Beim Arbeiten an Projekten, die das Senden oder Empfangen von Daten über ein Netzwerk umfassen, können Binäre Dateien auftreten.
  • Dateikomprimierung: Binärdateien werden für die Dateikomprimierung verwendet, wobei Daten in ein Binärformat komprimiert werden, um Speicherplatz zu sparen. Möglicherweise müssen Sie mit komprimierten Dateien in ihren Projekten arbeiten.

Praktische Beispiele:

  • Speichern von Spieldaten: Beim Entwickeln eines Spiels können BinaryWriter Sie den Spielzustand (z. B. Spielerfortschritt, Spielstände) in einer Binärdatei speichern und BinaryReader den Spielzustand laden, wenn das Spiel gestartet wird.
  • Behandeln von Mediendateien: Sie können zum Lesen von Bild- oder Audiodateien und BinaryReader zum Speichern bearbeiteter Mediendateien verwendenBinaryWriter.
  • Konfigurationsverwaltung: Sie können anwendungseinstellungen BinaryWriter in einer Binärdatei speichern und BinaryReader diese Einstellungen laden, wenn die Anwendung gestartet wird.

StreamReader Sie StreamWriter eignen sich zwar hervorragend für Textdateivorgänge und BinaryReader eignen sich auch für Szenarien, BinaryWriter in denen Sie mit Binären Daten arbeiten müssen. Wenn Sie diese gängigen Fälle verstehen, können Sie erkennen, wann jede Klasse verwendet werden soll und wie Sie unterschiedliche Dateitypen in ihren Projekten behandeln.

Untersuchen mithilfe von BinaryReader und BinaryWriter

Verwenden von BinaryReader und BinaryWriter

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs))
            {
                // Write some data
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

In diesem Beispiel erstellen wir eine Binärdatei namens und example.dat schreiben eine ganze Zahl, ein Double und eine Zeichenfolge dazu.BinaryWriter Anschließend lesen wir die Daten wieder, und BinaryReader drucken sie in der Konsole.

Verwenden von BinaryReader und BinaryWriter mit Codierung

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterEncodingExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs, Encoding.UTF8))
            {
                // Write some data with UTF-8 encoding
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs, Encoding.UTF8))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

In diesem Beispiel erstellen wir eine Binärdatei namens und example.dat schreiben eine ganze Zahl, einen Doppelwert und eine Zeichenfolge, die mit UTF-8-Codierung verwendet BinaryWriter wird. Anschließend lesen wir die Daten wieder mit BinaryReader der gleichen Codierung und drucken sie in der Konsole.

Verwenden von BinaryReader und BinaryWriter mit FileStream

using System;
using System.IO;
using System.Text;

public class BinaryReaderWriterFileStreamExample
{
    public static void Main()
    {
        // Create a file to write to
        using (FileStream fs = new FileStream("example.dat", FileMode.Create))
        {
            using (BinaryWriter writer = new BinaryWriter(fs))
            {
                // Write some data
                writer.Write(42); // Integer
                writer.Write(3.14); // Double
                writer.Write("Hello, World!"); // String
            }
        }

        // Read the data back
        using (FileStream fs = new FileStream("example.dat", FileMode.Open))
        {
            using (BinaryReader reader = new BinaryReader(fs))
            {
                int intValue = reader.ReadInt32();
                double doubleValue = reader.ReadDouble();
                string stringValue = reader.ReadString();

                Console.WriteLine($"Integer: {intValue}");
                Console.WriteLine($"Double: {doubleValue}");
                Console.WriteLine($"String: {stringValue}");
            }
        }
    }
}

In diesem Beispiel erstellen wir eine Binärdatei mit dem Namen example.dat und schreiben eine ganze Zahl, einen Doppelwert und eine Zeichenfolge, die mit einer BinaryWriterZeichenfolge verwendet FileStream wird. Anschließend lesen wir die Daten wieder, die BinaryReader mit demselben FileStream verwendet werden, und drucken sie in der Konsole.

Zusammenfassung

Die BinaryReader Klassen sind BinaryWriter leistungsstarke Tools zum Lesen und Schreiben von Binärdaten in .NET-Anwendungen. Sie bieten eine einfache Möglichkeit, verschiedene Datentypen zu verarbeiten, wodurch sie für Aufgaben mit Binärdateien, Daten serialisierung und Multimediaspeicher unerlässlich sind. Wenn Sie deren Nutzung und Szenarien verstehen, können Sie binäre Daten in Ihren Projekten effektiv verwalten.