Udostępnij za pośrednictwem


BinaryWriter Klasa

Definicja

Zapisuje typy pierwotne w pliku binarnym do strumienia i obsługuje zapisywanie ciągów w określonym kodowaniu.

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
Dziedziczenie
BinaryWriter
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie kodu pokazano, jak przechowywać i pobierać ustawienia aplikacji w pliku.

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

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (var stream = File.Open(fileName, FileMode.Create))
        {
            using (var writer = new BinaryWriter(stream, Encoding.UTF8, false))
            {
                writer.Write(1.250F);
                writer.Write(@"c:\Temp");
                writer.Write(10);
                writer.Write(true);
            }
        }
    }

    public static void DisplayValues()
    {
        float aspectRatio;
        string tempDirectory;
        int autoSaveTime;
        bool showStatusBar;

        if (File.Exists(fileName))
        {
            using (var stream = File.Open(fileName, FileMode.Open))
            {
                using (var reader = new BinaryReader(stream, Encoding.UTF8, false))
                {
                    aspectRatio = reader.ReadSingle();
                    tempDirectory = reader.ReadString();
                    autoSaveTime = reader.ReadInt32();
                    showStatusBar = reader.ReadBoolean();
                }
            }

            Console.WriteLine("Aspect ratio set to: " + aspectRatio);
            Console.WriteLine("Temp directory is: " + tempDirectory);
            Console.WriteLine("Auto save time set to: " + autoSaveTime);
            Console.WriteLine("Show status bar: " + showStatusBar);
        }
    }
}
open System.IO
open System.Text

let fileName = "AppSettings.dat"

let writeDefaultValues () =
    use stream = File.Open(fileName, FileMode.Create)
    use writer = new BinaryWriter(stream, Encoding.UTF8, false)
    writer.Write 1.250F
    writer.Write @"c:\Temp"
    writer.Write 10
    writer.Write true

let displayValues () =
    if File.Exists fileName then
        use stream = File.Open(fileName, FileMode.Open)
        use reader = new BinaryReader(stream, Encoding.UTF8, false)
        let aspectRatio = reader.ReadSingle()
        let tempDirectory = reader.ReadString()
        let autoSaveTime = reader.ReadInt32()
        let showStatusBar = reader.ReadBoolean()

        printfn $"Aspect ratio set to: {aspectRatio}"
        printfn $"Temp directory is: {tempDirectory}"
        printfn $"Auto save time set to: {autoSaveTime}"
        printfn $"Show status bar: {showStatusBar}"

writeDefaultValues ()
displayValues ()
Imports System.IO

Module Module1
    Const fileName As String = "AppSettings.dat"

    Sub Main()
        WriteDefaultValues()
        DisplayValues()
    End Sub

    Sub WriteDefaultValues()
        Using writer As BinaryWriter = New BinaryWriter(File.Open(fileName, FileMode.Create))
            writer.Write(1.25F)
            writer.Write("c:\Temp")
            writer.Write(10)
            writer.Write(True)
        End Using
    End Sub

    Sub DisplayValues()
        Dim aspectRatio As Single
        Dim tempDirectory As String
        Dim autoSaveTime As Integer
        Dim showStatusBar As Boolean

        If (File.Exists(fileName)) Then

            Using reader As BinaryReader = New BinaryReader(File.Open(fileName, FileMode.Open))
                aspectRatio = reader.ReadSingle()
                tempDirectory = reader.ReadString()
                autoSaveTime = reader.ReadInt32()
                showStatusBar = reader.ReadBoolean()
            End Using

            Console.WriteLine("Aspect ratio set to: " & aspectRatio)
            Console.WriteLine("Temp directory is: " & tempDirectory)
            Console.WriteLine("Auto save time set to: " & autoSaveTime)
            Console.WriteLine("Show status bar: " & showStatusBar)
        End If
    End Sub

End Module

Uwagi

Klasa BinaryWriter udostępnia metody upraszczające zapisywanie pierwotnych typów danych w strumieniu. Na przykład możesz użyć metody Write, aby zapisać wartość logiczną w strumieniu jako wartość jedno bajtową. Klasa zawiera metody zapisu, które obsługują różne typy danych.

Podczas tworzenia nowego wystąpienia klasy BinaryWriter należy podać strumień do zapisu i opcjonalnie określić typ kodowania oraz czy strumień zostanie otwarty po usunięciu obiektu BinaryWriter. Jeśli nie określisz typu kodowania, jest używany kodowanie UTF-8.

Ważny

Ten typ implementuje interfejs IDisposable. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby usunąć typ bezpośrednio, wywołaj metodę Dispose w bloku try/catch. Aby usunąć go pośrednio, należy użyć konstrukcji języka, takiej jak using (w języku C#) lub Using (w Visual Basic). Aby uzyskać więcej informacji, zobacz sekcję "Using an Object that Implements IDisposable" (Używanie obiektu implementujące interfejs IDisposable) w temacie interfejsu IDisposable.

Klasa pochodna może zastąpić metody tej klasy, aby nadać kodowanie znaków unikatowych.

Konstruktory

BinaryWriter()

Inicjuje nowe wystąpienie klasy BinaryWriter, która zapisuje w strumieniu.

BinaryWriter(Stream)

Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i przy użyciu kodowania UTF-8.

BinaryWriter(Stream, Encoding)

Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i kodowania znaków.

BinaryWriter(Stream, Encoding, Boolean)

Inicjuje nowe wystąpienie klasy BinaryWriter na podstawie określonego strumienia i kodowania znaków, a opcjonalnie pozostawia otwarty strumień.

Pola

Null

Określa BinaryWriter bez magazynu zapasowego.

OutStream

Przechowuje strumień bazowy.

Właściwości

BaseStream

Pobiera podstawowy strumień BinaryWriter.

Metody

Close()

Zamyka bieżące BinaryWriter i bazowy strumień.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryWriter.

Dispose(Boolean)

Zwalnia niezarządzane zasoby używane przez BinaryWriter i opcjonalnie zwalnia zarządzane zasoby.

DisposeAsync()

Asynchronicznie zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy BinaryWriter.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.

(Odziedziczone po Object)
Flush()

Czyści wszystkie dla bieżącego modułu zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu bazowym.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Object.

(Odziedziczone po Object)
Seek(Int32, SeekOrigin)

Ustawia położenie w bieżącym strumieniu.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
Write(Boolean)

Zapisuje jedno bajtową wartość Boolean do bieżącego strumienia z wartością 0 reprezentującą false i 1 reprezentującą true.

Write(Byte)

Zapisuje niepodpisany bajt do bieżącego strumienia i rozwija pozycję strumienia według jednego bajtu.

Write(Byte[])

Zapisuje tablicę bajtów w strumieniu bazowym.

Write(Byte[], Int32, Int32)

Zapisuje region tablicy bajtów w bieżącym strumieniu.

Write(Char)

Zapisuje znak Unicode w bieżącym strumieniu i przechodzi bieżącą pozycję strumienia zgodnie z Encoding używanym i określonymi znakami zapisywanymi w strumieniu.

Write(Char[])

Zapisuje tablicę znaków w bieżącym strumieniu i rozwija bieżącą pozycję strumienia zgodnie z używanymi Encoding i określonymi znakami zapisywanymi w strumieniu.

Write(Char[], Int32, Int32)

Zapisuje sekcję tablicy znaków w bieżącym strumieniu i przechodzi bieżącą pozycję strumienia zgodnie z używanymi Encoding i być może określonymi znakami zapisywanymi w strumieniu.

Write(Decimal)

Zapisuje wartość dziesiętną do bieżącego strumienia i rozwija pozycję strumienia o szesnaście bajtów.

Write(Double)

Zapisuje wartość zmiennoprzecinkową ośmiu bajtów do bieżącego strumienia i zwiększa położenie strumienia o osiem bajtów.

Write(Half)

Zapisuje wartość zmiennoprzecinkową dwubajtową do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty.

Write(Int16)

Zapisuje dwubajtową liczbę całkowitą ze znakiem do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty.

Write(Int32)

Zapisuje czterobajtową liczbę całkowitą ze znakiem do bieżącego strumienia i rozwija położenie strumienia o cztery bajty.

Write(Int64)

Zapisuje liczbę całkowitą ze znakiem ośmiu bajtów do bieżącego strumienia i rozwija pozycję strumienia o osiem bajtów.

Write(ReadOnlySpan<Byte>)

Zapisuje zakres bajtów w bieżącym strumieniu.

Write(ReadOnlySpan<Char>)

Zapisuje zakres znaków w bieżącym strumieniu i rozwija bieżącą pozycję strumienia zgodnie z używanym Encoding i być może określonymi znakami zapisywanymi w strumieniu.

Write(SByte)

Zapisuje podpisany bajt do bieżącego strumienia i rozwija pozycję strumienia według jednego bajtu.

Write(Single)

Zapisuje wartość zmiennoprzecinkową z czterema bajtami do bieżącego strumienia i rozwija położenie strumienia o cztery bajty.

Write(String)

Zapisuje ciąg z prefiksem długości do tego strumienia w bieżącym kodowaniu BinaryWriteri przechodzi bieżącą pozycję strumienia zgodnie z używanym kodowaniem i określonymi znakami zapisywanymi w strumieniu.

Write(UInt16)

Zapisuje dwubajtową liczbę całkowitą bez znaku do bieżącego strumienia i przesuwa położenie strumienia o dwa bajty.

Write(UInt32)

Zapisuje czterobajtową liczbę całkowitą bez znaku do bieżącego strumienia i przesuwa położenie strumienia o cztery bajty.

Write(UInt64)

Zapisuje ośmiobajtową liczbę całkowitą bez znaku do bieżącego strumienia i rozwija położenie strumienia o osiem bajtów.

Write7BitEncodedInt(Int32)

Zapisuje 32-bitową liczbę całkowitą w formacie skompresowanym.

Write7BitEncodedInt64(Int64)

Zapisuje liczbę 7 bitów naraz.

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia niezarządzane zasoby używane przez BinaryWriter i opcjonalnie zwalnia zarządzane zasoby.

Metody rozszerzania

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje, w jaki sposób będą wykonywane oczekiwania na zadania zwrócone z asynchronicznego jednorazowego użytku.

Dotyczy

Zobacz też