BinaryWriter Osztály

Definíció

Primitív típusokat ír binárisan egy streambe, és támogatja a sztringek írását egy adott kódolásban.

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
Öröklődés
BinaryWriter
Attribútumok
Megvalósítás

Példák

Az alábbi példakód bemutatja, hogyan tárolhatja és lekérheti az alkalmazásbeállításokat egy fájlban.

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

Megjegyzések

Az BinaryWriter osztály olyan módszereket biztosít, amelyek leegyszerűsítik a primitív adattípusok streambe való írását. A metódussal Write például logikai értéket írhat a streambe egy bájtos értékként. Az osztály különböző adattípusokat támogató írási metódusokat tartalmaz.

Amikor létrehoz egy új példányt az BinaryWriter osztályban, megadja a streamet, amelybe írhat, és opcionálisan megadhatja a kódolás típusát, valamint azt, hogy az objektum törlése után nyitva hagyja-e a BinaryWriter streamet. Ha nem ad meg kódolási típust, a rendszer az UTF-8-at használja.

Important

Ez a típus implementálja a IDisposable felületet. Ha befejezte a típus használatát, közvetlenül vagy közvetve kell megsemmisítenie. A típus közvetlen ártalmatlanításához hívja meg a Dispose metódust egy try/catch blokkban. Ha közvetve szeretné megsemmisíteni, használjon olyan nyelvi szerkezetet, mint a using (C#-ban) vagy Using (a Visual Basicben). További információ: "Az IDisposable-t megvalósító objektum használata" című szakasz a IDisposable felület témakörében.

A származtatott osztály felülírhatja az osztály metódusait egyedi karakterkódolások megadásához.

Konstruktorok

Name Description
BinaryWriter()

Inicializálja a BinaryWriter streambe írandó osztály új példányát.

BinaryWriter(Stream, Encoding, Boolean)

Inicializálja az osztály új példányát a BinaryWriter megadott stream és karakterkódolás alapján, és opcionálisan nyitva hagyja a streamet.

BinaryWriter(Stream, Encoding)

Inicializálja az osztály új példányát a BinaryWriter megadott stream és karakterkódolás alapján.

BinaryWriter(Stream)

Inicializálja az osztály új példányát a BinaryWriter megadott stream alapján, és UTF-8 kódolást használ.

Mezők

Name Description
Null

BinaryWriter Egy háttértár nélküli tárolót ad meg.

OutStream

A mögöttes streamet tárolja.

Tulajdonságok

Name Description
BaseStream

Lekéri a mögöttes adatfolyamot a BinaryWriter.

Metódusok

Name Description
Close()

Bezárja az aktuális BinaryWriter és a mögöttes streamet.

Dispose()

Az osztály aktuális példánya által használt összes erőforrást felszabadítja BinaryWriter .

Dispose(Boolean)

Felszabadítja a felügyelt erőforrások által BinaryWriter használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

DisposeAsync()

Aszinkron módon felszabadítja az osztály aktuális példánya által használt összes erőforrást BinaryWriter .

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
Flush()

Törli az aktuális író összes pufferét, és a pufferelt adatokat a mögöttes eszközre írja.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
Seek(Int32, SeekOrigin)

Beállítja az aktuális streamen belüli pozíciót.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)
Write(Boolean)

Egy bájtos Boolean értéket ír az aktuális streambe, 0-val és false 1-zel.true

Write(Byte)

Aláíratlan bájtot ír az aktuális adatfolyamra, és egy bájttal előrelépteti a stream pozícióját.

Write(Byte[], Int32, Int32)

Egy bájttömb egy régióját írja az aktuális adatfolyamba.

Write(Byte[])

Bájttömböt ír a mögöttes adatfolyamba.

Write(Char)

Unicode-karaktert ír az aktuális streambe, és a használt és a streambe írt konkrét karaktereknek Encoding megfelelően alakítja tovább a stream aktuális pozícióját.

Write(Char[], Int32, Int32)

Egy karaktertömb egy szakaszát az aktuális streambe írja, és a stream aktuális pozícióját a Encoding használt és esetleg a streambe írt konkrét karaktereknek megfelelően alakítja tovább.

Write(Char[])

Karaktertömböt ír az aktuális streambe, és a használt és a streambe írt konkrét karaktereknek Encoding megfelelően alakítja tovább a stream aktuális pozícióját.

Write(Decimal)

Decimális értéket ír az aktuális adatfolyamra, és tizenhat bájttal lép előre a stream pozícióján.

Write(Double)

Nyolcbájtos lebegőpontos értéket ír az aktuális streambe, és nyolc bájttal lép előre a stream pozícióján.

Write(Half)

Kétbájtos lebegőpontos értéket ír az aktuális adatfolyamba, és két bájttal lép előre a stream pozícióján.

Write(Int16)

Kétbájtos aláírt egész számot ír az aktuális streambe, és két bájttal előrelépteti a stream pozícióját.

Write(Int32)

Négybájtos aláírt egész számot ír az aktuális streamre, és négy bájttal előrelépteti a stream pozícióját.

Write(Int64)

Nyolcbájtos aláírt egész számot ír az aktuális streamre, és nyolc bájttal előrelép a stream pozícióján.

Write(ReadOnlySpan<Byte>)

Bájttartományt ír az aktuális streambe.

Write(ReadOnlySpan<Char>)

Több karaktert ír az aktuális streambe, és a stream aktuális pozícióját a használt és esetleg a streambe írt konkrét karaktereknek megfelelően Encoding alakítja tovább.

Write(SByte)

Aláírt bájtot ír az aktuális streambe, és egy bájttal előrelépteti a stream pozícióját.

Write(Single)

Négybájtos lebegőpontos értéket ír az aktuális streambe, és négy bájttal lép előre a stream pozícióján.

Write(String)

Egy hosszelőtagú sztringet ír erre a streamre a BinaryWriterstream aktuális kódolásában, és a használt kódolásnak és a streambe írt konkrét karaktereknek megfelelően alakítja tovább a stream aktuális pozícióját.

Write(UInt16)

Kétbájtos, aláíratlan egész számot ír az aktuális adatfolyamra, és két bájttal lép előre a stream pozícióján.

Write(UInt32)

Négybájtos, aláíratlan egész számot ír az aktuális adatfolyamra, és négy bájttal lép előre a stream pozícióján.

Write(UInt64)

Nyolcbájtos, aláíratlan egész számot ír az aktuális adatfolyamra, és nyolc bájttal lép előre a stream pozícióján.

Write7BitEncodedInt(Int32)

32 bites egész számot ír tömörített formátumban.

Write7BitEncodedInt64(Int64)

Egyszerre 7 bitet ír ki.

Explicit interfész-implementációk

Name Description
IDisposable.Dispose()

Felszabadítja a felügyelt erőforrások által BinaryWriter használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

Bővítő metódusok

Name Description
ConfigureAwait(IAsyncDisposable, Boolean)

Konfigurálja, hogy az aszinkron eldobható feladatok hogyan lesznek végrehajtva.

A következőre érvényes:

Lásd még