BinaryWriter Třída

Definice

Zapisuje primitivní typy v binárním formátu do datového proudu a podporuje zápis řetězců v určitém kódování.

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
Dědičnost
BinaryWriter
Atributy
Implementuje

Příklady

Následující příklad kódu ukazuje, jak uložit a načíst nastavení aplikace v souboru.

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

Poznámky

Třída BinaryWriter poskytuje metody, které zjednodušují zápis primitivních datových typů do datového proudu. Můžete například použít metodu Write k zápisu logické hodnoty do datového proudu jako jedno bajtové hodnoty. Třída obsahuje metody zápisu, které podporují různé datové typy.

Při vytváření nové instance BinaryWriter třídy poskytnete datový proud, do který chcete zapisovat, a volitelně určíte typ kódování a zda se má datový proud po odstranění objektu BinaryWriter ponechat otevřený. Pokud nezadáte typ kódování, použije se UTF-8.

Důležité

Tento typ implementuje IDisposable rozhraní . Až s použitím typu skončíte, měli byste ho odstranit přímo nebo nepřímo. Chcete-li odstranit typ přímo, zavolejte jeho Dispose metodu try/catch v bloku. Pokud ho chcete odstranit nepřímo, použijte konstruktor jazyka, jako using je (v jazyce C#) nebo Using (v jazyce Visual Basic). Další informace najdete v části "Použití objektu, který implementuje IDisposable" v IDisposable tématu rozhraní.

Odvozená třída může přepsat metody této třídy a poskytnout tak kódování jedinečných znaků.

Konstruktory

BinaryWriter()

Inicializuje novou instanci BinaryWriter třídy, která zapisuje do datového proudu.

BinaryWriter(Stream)

Inicializuje novou instanci BinaryWriter třídy na základě zadaného datového proudu a pomocí kódování UTF-8.

BinaryWriter(Stream, Encoding)

Inicializuje novou instanci BinaryWriter třídy na základě zadaného datového proudu a kódování znaků.

BinaryWriter(Stream, Encoding, Boolean)

Inicializuje novou instanci třídy na základě zadaného datového BinaryWriter proudu a kódování znaků a volitelně ponechá datový proud otevřený.

Pole

Null

Určuje bez záložního BinaryWriter úložiště.

OutStream

Uchovává podkladový datový proud.

Vlastnosti

BaseStream

Získá podkladový stream objektu BinaryWriter.

Metody

Close()

Zavře aktuální BinaryWriter a podkladový datový proud.

Dispose()

Uvolní všechny prostředky používané aktuální instancí BinaryWriter třídy .

Dispose(Boolean)

Uvolní nespravované prostředky používané nástrojem BinaryWriter a volitelně uvolní spravované prostředky.

DisposeAsync()

Asynchronně uvolní všechny prostředky používané aktuální instancí BinaryWriter třídy .

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Flush()

Vymaže všechny vyrovnávací paměti pro aktuální zapisovač a způsobí zápis všech dat do vyrovnávací paměti do základního zařízení.

GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetType()

Type Získá z aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
Seek(Int32, SeekOrigin)

Nastaví pozici v rámci aktuálního datového proudu.

ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)
Write(Boolean)

Zapíše jedno bajtovou Boolean hodnotu do aktuálního datového proudu, přičemž 0 představuje false a 1 představuje true.

Write(Byte)

Zapíše nepodepsaný bajt do aktuálního datového proudu a posune pozici datového proudu o jeden bajt.

Write(Byte[])

Zapíše pole bajtů do podkladového datového proudu.

Write(Byte[], Int32, Int32)

Zapíše oblast pole bajtů do aktuálního datového proudu.

Write(Char)

Zapíše znak unicode do aktuálního streamu a posune aktuální pozici datového proudu v souladu s použitými a konkrétními Encoding znaky zapisované do datového proudu.

Write(Char[])

Zapíše pole znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitými znaky a konkrétními Encoding znaky zapsanými do datového proudu.

Write(Char[], Int32, Int32)

Zapíše část pole znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitými a případně konkrétními Encoding znaky zapsanými do datového proudu.

Write(Decimal)

Zapíše desetinnou hodnotu do aktuálního datového proudu a posune pozici datového proudu o šestnáct bajtů.

Write(Double)

Zapíše hodnotu s plovoucí desetinou čárkou o 8 bajtů do aktuálního datového proudu a posune pozici datového proudu o osm bajtů.

Write(Half)

Zapíše hodnotu dvoubajtů s plovoucí desetinou čárkou do aktuálního datového proudu a posune pozici datového proudu o dva bajty.

Write(Int16)

Zapíše do aktuálního datového proudu celé číslo se dvěma bajty a posune pozici datového proudu o dva bajty.

Write(Int32)

Zapíše do aktuálního datového proudu celé číslo se 4 bajty a posune pozici datového proudu o čtyři bajty.

Write(Int64)

Zapíše do aktuálního datového proudu celé číslo se 8 bajty a posune pozici datového proudu o osm bajtů.

Write(ReadOnlySpan<Byte>)

Zapíše rozsah bajtů do aktuálního datového proudu.

Write(ReadOnlySpan<Char>)

Zapíše rozsah znaků do aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitými a případně konkrétními Encoding znaky, které se do datového proudu zapisují.

Write(SByte)

Zapíše podepsaný bajt do aktuálního datového proudu a posune pozici datového proudu o jeden bajt.

Write(Single)

Zapíše hodnotu čtyř bajtů s plovoucí desetinou čárkou do aktuálního datového proudu a posune pozici datového proudu o čtyři bajty.

Write(String)

Zapíše řetězec s délkou předpony do tohoto datového BinaryWriterproudu v aktuálním kódování a posune aktuální pozici datového proudu v souladu s použitým kódováním a konkrétními znaky zapisovanými do datového proudu.

Write(UInt16)

Zapíše do aktuálního datového proudu celé číslo se dvěma bajty bez znaménka a posune pozici datového proudu o dva bajty.

Write(UInt32)

Zapíše do aktuálního datového proudu celé číslo bez znaménka se čtyřmi bajty a posune pozici datového proudu o čtyři bajty.

Write(UInt64)

Zapíše celé číslo bez znaménka s osmi bajty do aktuálního datového proudu a posune pozici datového proudu o osm bajtů.

Write7BitEncodedInt(Int32)

Zapíše 32bitové celé číslo v komprimovaném formátu.

Write7BitEncodedInt64(Int64)

Zapíše číslo 7 bitů najednou.

Explicitní implementace rozhraní

IDisposable.Dispose()

Uvolní nespravované prostředky používané nástrojem BinaryWriter a volitelně uvolní spravované prostředky.

Metody rozšíření

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguruje, jak se provádí funkce awaits u úloh vrácených z asynchronního jednorázového režimu.

Platí pro

Viz také