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

Poniższy przykład kodu demonstruje sposób przechowywania i pobierania ustawień 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. Możesz na przykład użyć Write metody , 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 BinaryWriter klasy należy podać strumień do zapisu i opcjonalnie określić typ kodowania i czy pozostawić strumień otwarty po usunięciu BinaryWriter obiektu. Jeśli nie określisz typu kodowania, jest używany kodowanie UTF-8.

Ważne

Ten typ implementuje IDisposable interfejs. Po zakończeniu korzystania z typu należy usunąć go bezpośrednio lub pośrednio. Aby bezpośrednio usunąć typ, wywołaj jego Dispose metodę try/catch w bloku. Aby usunąć go pośrednio, użyj 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 unikatowych znaków.

Konstruktory

BinaryWriter()

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

BinaryWriter(Stream)

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

BinaryWriter(Stream, Encoding)

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

BinaryWriter(Stream, Encoding, Boolean)

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

Pola

Null

Określa bez BinaryWriter magazynu zapasowego.

OutStream

Przechowuje bazowy strumień.

Właściwości

BaseStream

Pobiera podstawowy strumień obiektu BinaryWriter.

Metody

Close()

Zamyka bieżący BinaryWriter i bazowy strumień.

Dispose()

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

Dispose(Boolean)

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

DisposeAsync()

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

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
Flush()

Czyści wszystkie bufory dla bieżącego składnika zapisywania i powoduje zapisanie wszystkich buforowanych danych na urządzeniu źródłowym.

GetHashCode()

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

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

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

(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 wartość jedno bajtową Boolean do bieżącego strumienia z wartością 0 reprezentującą false i 1 reprezentującą truewartość .

Write(Byte)

Zapisuje niepodpisany bajt do bieżącego strumienia i przesuwa położenie strumienia o jeden bajt.

Write(Byte[])

Zapisuje tablicę bajtów do bazowego strumienia.

Write(Byte[], Int32, Int32)

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

Write(Char)

Zapisuje znak Unicode do bieżącego strumienia i rozwija bieżącą pozycję strumienia zgodnie z używanymi Encoding 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 rozwija bieżącą pozycję strumienia zgodnie z używanym Encoding i być może określonymi znakami zapisywanymi w strumieniu.

Write(Decimal)

Zapisuje wartość dziesiętną do bieżącego strumienia i przesuwa położenie strumienia o szesnaście bajtów.

Write(Double)

Zapisuje ośmiobajtową wartość zmiennoprzecinkową do bieżącego strumienia i przesuwa 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 przesuwa położenie strumienia o cztery bajty.

Write(Int64)

Zapisuje ośmiobajtową liczbę całkowitą ze znakiem 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żywanymi Encoding i być może określonymi znakami zapisywanymi w strumieniu.

Write(SByte)

Zapisuje podpisany bajt do bieżącego strumienia i przesuwa położenie strumienia o jeden bajt.

Write(Single)

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

Write(String)

Zapisuje ciąg z prefiksem długości do tego strumienia w bieżącym kodowaniu , i rozwija bieżącą pozycję strumienia zgodnie z używanym kodowaniem BinaryWriteri 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 pozycję strumienia o osiem bajtów.

Write7BitEncodedInt(Int32)

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

Write7BitEncodedInt64(Int64)

Zapisuje liczbę 7 bitów naraz.

Jawne implementacje interfejsu

IDisposable.Dispose()

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

Metody rozszerzania

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje sposób oczekiwania na zadania zwracane z jednorazowego użytku asynchronicznego.

Dotyczy

Zobacz też