BinaryReader Třída

Definice

Čte primitivní datové typy jako binární hodnoty v určitém kódování.

public ref class BinaryReader : IDisposable
public class BinaryReader : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryReader : IDisposable
type BinaryReader = class
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryReader = class
    interface IDisposable
Public Class BinaryReader
Implements IDisposable
Dědičnost
BinaryReader
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 BinaryReader poskytuje metody, které zjednodušují čtení primitivních datových typů z datového proudu. Pomocí metody můžete ReadBoolean například přečíst další bajt jako logickou hodnotu a přejít na aktuální pozici datového proudu o jeden bajt. Třída obsahuje metody čtení, které podporují různé datové typy.

Když vytvoříte novou instanci BinaryReader třídy, poskytnete datový proud pro čtení a volitelně zadáte typ kódování a zda chcete datový proud nechat otevřený po zveřejnění objektu BinaryReader . Pokud nezadáte typ kódování, použije se UTF-8.

Important

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

Konstruktory

Name Description
BinaryReader(Stream, Encoding, Boolean)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream)

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

Vlastnosti

Name Description
BaseStream

Zpřístupňuje přístup k podkladovému datovému BinaryReaderproudu .

Metody

Name Description
Close()

Zavře aktuální čtečku a podkladový datový proud.

Dispose()

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

Dispose(Boolean)

Uvolní nespravované prostředky používané BinaryReader třídou a volitelně uvolní spravované prostředky.

Equals(Object)

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

(Zděděno od Object)
FillBuffer(Int32)

Vyplní vnitřní vyrovnávací paměť zadaným počtem bajtů načtených z datového proudu.

GetHashCode()

Slouží jako výchozí funkce hash.

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

Získá Type aktuální instance.

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

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

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

Vrátí další dostupný znak a nepřevádí pozici bajtu ani znaku.

Read()

Přečte znaky z podkladového datového proudu a posune aktuální pozici datového proudu v souladu s použitým Encoding a konkrétním znakem, který se čte z datového proudu.

Read(Byte[], Int32, Int32)

Přečte zadaný počet bajtů z datového proudu počínaje zadaným bodem v bajtovém poli.

Read(Char[], Int32, Int32)

Přečte zadaný počet znaků z datového proudu počínaje zadaným bodem v matici znaků.

Read(Span<Byte>)

Přečte posloupnost bajtů z aktuálního datového proudu a posune pozici v datovém proudu o počet přečtených bajtů.

Read(Span<Char>)

Přečte z aktuálního datového proudu stejný počet znaků jako délka poskytnuté vyrovnávací paměti, zapíše je do poskytnuté vyrovnávací paměti a přepojí aktuální pozici v souladu s použitým Encoding a konkrétním znakem přečteným ze streamu.

Read7BitEncodedInt()

Čte 32bitové celé číslo v komprimovaném formátu.

ReadBoolean()

Boolean Načte hodnotu z aktuálního datového proudu a posune aktuální pozici datového proudu o jeden bajt.

ReadByte()

Přečte další bajt z aktuálního datového proudu a posune aktuální pozici datového proudu o jeden bajt.

ReadBytes(Int32)

Přečte zadaný počet bajtů z aktuálního datového proudu do bajtového pole a posune aktuální pozici o tento počet bajtů.

ReadChar()

Přečte další znak z aktuálního datového proudu a posune aktuální pozici datového proudu v souladu s použitým Encoding a konkrétním znakem, který se čte z datového proudu.

ReadChars(Int32)

Přečte zadaný počet znaků z aktuálního datového proudu, vrátí data v matici znaků a posune aktuální pozici v souladu s použitým Encoding a konkrétním znakem, který se čte z datového proudu.

ReadDecimal()

Načte desetinnou hodnotu z aktuálního datového proudu a posune aktuální pozici datového proudu o šestnáct bajtů.

ReadDouble()

Přečte hodnotu 8 bajtů s plovoucí desetinou čárkou z aktuálního datového proudu a posune aktuální pozici datového proudu o osm bajtů.

ReadInt16()

Načte 2 bajtové celé číslo se dvěma bajty z aktuálního datového proudu a posune aktuální pozici datového proudu o dva bajty.

ReadInt32()

Přečte 4 bajtové celé číslo se signtem z aktuálního datového proudu a posune aktuální pozici datového proudu o čtyři bajty.

ReadInt64()

Přečte 8 bajtové celé číslo se signtem z aktuálního datového proudu a posune aktuální pozici datového proudu o osm bajtů.

ReadSByte()

Přečte podepsaný bajt z tohoto datového proudu a posune aktuální pozici datového proudu o jeden bajt.

ReadSingle()

Přečte hodnotu 4bajtů s plovoucí desetinou čárkou z aktuálního datového proudu a posune aktuální pozici datového proudu o čtyři bajty.

ReadString()

Načte řetězec z aktuálního datového proudu. Řetězec má předponu délky, která je zakódovaná jako celé číslo sedm bitů najednou.

ReadUInt16()

Načte 2 bajtové celé číslo bez znaménka z aktuálního datového proudu pomocí kódování little-endian a posune pozici datového proudu o dva bajty.

ReadUInt32()

Přečte 4 bajtové celé číslo bez znaménka z aktuálního datového proudu a posune pozici datového proudu o čtyři bajty.

ReadUInt64()

Přečte 8bajtů bez znaménka z aktuálního datového proudu a posune pozici datového proudu o osm bajtů.

ToString()

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

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IDisposable.Dispose()

Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu.

Uvolní, BaseStream pokud není nakonfigurován jinak .BinaryReader(Stream, Encoding, Boolean)

Platí pro

Viz také