Badanie klas BinaryReader i BinaryWriter

Ukończone

Pliki binarne to pliki zawierające dane w formacie, który nie jest czytelny dla człowieka. Są one często używane do przechowywania złożonych struktur danych, obrazów, audio, wideo i innych typów zawartości. Pliki binarne mogą być bardziej wydajne pod względem magazynu i wydajności w porównaniu z plikami tekstowymi, zwłaszcza w przypadku obsługi dużych ilości danych. Pliki binarne zazwyczaj nie mają być otwierane i odczytywane przez ludzi, ponieważ mogą zawierać dane w formacie specyficznym dla określonej aplikacji lub systemu. Zamiast tego są one przeznaczone do przetwarzania przez oprogramowanie, które rozumie format binarny.

Klasy BinaryReader i BinaryWriter są częścią klasy . Przestrzeń nazw platformy NET i są przeznaczone do odczytywania i zapisywania System.IO danych binarnych. Ważne jest, aby deweloperzy zrozumieli, kiedy i jak używać BinaryReaderBinaryWriter i do efektywnego manipulowania plikami i strumieniem danych.

Badanie przypadków użycia elementów BinaryReader i BinaryWriter

Chociaż używanie elementów StreamReader i StreamWriter jest często wystarczające w przypadku operacji na plikach tekstowych, istnieją scenariusze wymagające użycia elementów BinaryReader i BinaryWriter. Oto kilka typowych przypadków, w których mogą wystąpić pliki binarne i muszą być używane BinaryReader i/lub BinaryWriter:

  • Pliki konfiguracji: Niektóre aplikacje używają plików konfiguracji binarnej do przechowywania ustawień i preferencji. Może być konieczne odczytanie lub zapisanie tych plików w celu zarządzania konfiguracjami aplikacji.
  • Serializacja danych: pliki binarne są często używane do serializacji danych, gdzie złożone struktury danych są konwertowane na format binarny dla magazynu lub transmisji. Jest to przydatne w przypadku zapisywania danych, ustawień lub innych danych strukturalnych.
  • Magazyn multimedialny: pliki binarne służą do przechowywania zawartości multimedialnej, takiej jak obrazy, dźwięk i wideo. Podczas obsługi plików multimedialnych w aplikacjach możesz pracować z plikami binarnymi.
  • Komunikacja sieciowa: pliki binarne są używane w komunikacji sieciowej do wydajnego przesyłania danych. Pliki binarne mogą wystąpić podczas pracy nad projektami, które obejmują wysyłanie lub odbieranie danych za pośrednictwem sieci.
  • Kompresja plików: pliki binarne są używane do kompresji plików, gdzie dane są kompresowane w formacie binarnym w celu zaoszczędzenia miejsca. Może być konieczne praca z skompresowanymi plikami w swoich projektach.

Przykłady praktyczne:

  • Zapisywanie danych gry: Podczas tworzenia gry można użyć BinaryWriter do zapisania stanu gry (np. postępu gracza, wyników) w pliku binarnym i BinaryReader załadowania stanu gry po rozpoczęciu gry.
  • Obsługa plików multimedialnych: możesz użyć BinaryReader narzędzia do odczytywania plików obrazu lub audio i BinaryWriter zapisywania edytowanych plików multimedialnych.
  • Zarządzanie konfiguracją: możesz użyć BinaryWriter polecenia , aby zapisać ustawienia aplikacji w pliku binarnym i BinaryReader załadować te ustawienia podczas uruchamiania aplikacji.

Chociaż StreamReader operacje na plikach tekstowych są doskonałe i StreamWriterBinaryReader są przydatne w scenariuszach, BinaryWriter w których trzeba pracować z danymi binarnymi. Zrozumienie tych typowych przypadków pomoże Ci rozpoznać, kiedy używać każdej klasy i jak obsługiwać różne typy plików w swoich projektach.

Badanie przy użyciu elementów BinaryReader i BinaryWriter

Korzystanie z elementów BinaryReader i 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}");
            }
        }
    }
}

W tym przykładzie utworzymy plik binarny o nazwie example.dat i zapiszemy liczbę całkowitą, podwójną i ciąg do niego przy użyciu polecenia BinaryWriter. Następnie odczytamy dane z powrotem przy użyciu polecenia BinaryReader i wyświetlimy je w konsoli.

Używanie elementów BinaryReader i BinaryWriter z kodowaniem

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

W tym przykładzie utworzymy plik binarny o nazwie example.dat i zapiszemy liczbę całkowitą, podwójną i ciąg do niego przy użyciu BinaryWriter kodowania UTF-8. Następnie odczytujemy dane z powrotem przy użyciu BinaryReader tego samego kodowania i drukujemy je w konsoli.

Używanie elementu BinaryReader i BinaryWriter z funkcją 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}");
            }
        }
    }
}

W tym przykładzie utworzymy plik binarny o nazwie example.dat i zapiszemy liczbę całkowitą, podwójną i ciąg do niego za pomocą elementu BinaryWriterFileStream. Następnie odczytamy dane z powrotem przy użyciu BinaryReader tego samego FileStream polecenia i wyświetlimy je w konsoli programu .

Podsumowanie

Klasy BinaryReader i BinaryWriter to zaawansowane narzędzia do odczytywania i zapisywania danych binarnych w aplikacjach platformy .NET. Zapewniają one prosty sposób obsługi różnych typów danych, co sprawia, że są one niezbędne dla zadań obejmujących pliki binarne, serializacji danych i magazyn multimedialny. Zrozumienie ich użycia i scenariuszy pomoże w efektywnym zarządzaniu danymi binarnymi w projektach.