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 ukládat a načítat 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ů ze streamu. Pomocí metody můžete ReadBoolean například přečíst další bajt jako logickou hodnotu a přejít na aktuální pozici ve streamu o jeden bajt. Třída obsahuje metody čtení, které podporují různé datové typy.

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

Důležité

Tento typ implementuje IDisposable rozhraní. Po použití tohoto typu byste ho měli odstranit buď 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, například 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

BinaryReader(Stream)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream, Encoding, Boolean)

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

Vlastnosti

BaseStream

Zveřejňuje přístup k podkladovému datovému proudu BinaryReader.

Metody

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()

Type Získá aktuální instanci.

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

Vytvoří použádnou kopii aktuálního souboru Object.

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

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

Read()

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

Read(Byte[], Int32, Int32)

Načte zadaný počet bajtů ze streamu počínaje zadaným bodem v bajtovém poli.

Read(Char[], Int32, Int32)

Přečte zadaný počet znaků ze streamu 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 rámci datového proudu o počet přečtených bajtů.

Read(Span<Char>)

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

Read7BitEncodedInt()

Čte v 32bitovém celočíselném formátu v komprimovaném formátu.

Read7BitEncodedInt64()

Přečte číslo 7 bitů najednou.

ReadBoolean()

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

ReadByte()

Přečte další bajt z aktuálního datového proudu a přejde na 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 podle tohoto počtu bajtů.

ReadChar()

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

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 ze streamu.

ReadDecimal()

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

ReadDouble()

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

ReadHalf()

Přečte hodnotu s plovoucí desetinnou čárkou 2 bajtů z aktuálního datového proudu a posune aktuální pozici datového proudu o dva bajty.

ReadInt16()

Přečte 2 bajtové celé číslo podepsané z aktuálního datového proudu a posune aktuální pozici streamu o dva bajty.

ReadInt32()

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

ReadInt64()

Přečte 8bajtů podepsané celé číslo 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 s plovoucí desetinnou čárkou se 4 bajty 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 s délkou zakódovanou 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 streamu o dva bajty.

ReadUInt32()

Přečte 4 bajtové celé číslo bez znaménka z aktuálního datového proudu a posune pozici streamu 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í

IDisposable.Dispose()

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

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

Platí pro

Viz také