BinaryReader Osztály

Definíció

A primitív adattípusokat bináris értékként olvassa be egy adott kódolásban.

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
Öröklődés
BinaryReader
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 BinaryReader osztály olyan módszereket biztosít, amelyek leegyszerűsítik a primitív adattípusok olvasását egy streamből. A metódussal ReadBoolean például logikai értékként beolvashatja a következő bájtot, és egy bájttal előreléptetheti a stream aktuális pozícióját. Az osztály különböző adattípusokat támogató olvasási módszereket tartalmaz.

Amikor létrehoz egy új példányt az BinaryReader osztályban, meg kell adnia az olvasandó streamet, és opcionálisan meg kell adnia a kódolás típusát, valamint azt, hogy az objektum törlése után nyitva hagyja-e a BinaryReader 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.

Konstruktorok

Name Description
BinaryReader(Stream, Encoding, Boolean)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream)

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

Tulajdonságok

Name Description
BaseStream

Elérhetővé teszi a mögöttes adatfolyamhoz való hozzáférést.BinaryReader

Metódusok

Name Description
Close()

Bezárja az aktuális olvasót és a mögöttes streamet.

Dispose()

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

Dispose(Boolean)

Felszabadítja az osztály által BinaryReader használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat.

Equals(Object)

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

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

Kitölti a belső puffert a streamből beolvasott bájtok megadott számával.

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

A következő elérhető karaktert adja vissza, és nem lépi túl a bájt vagy a karakter pozícióját.

Read()

Beolvassa a mögöttes streamből származó karaktereket, és a használt és a streamből beolvasott karakternek Encoding megfelelően alakítja tovább a stream aktuális pozícióját.

Read(Byte[], Int32, Int32)

Beolvassa a megadott bájtszámot a streamből a bájttömb egy megadott pontjától kezdve.

Read(Char[], Int32, Int32)

Beolvassa a megadott számú karaktert a streamből a karaktertömb egy megadott pontjától kezdve.

Read(Span<Byte>)

Beolvassa az aktuális streamből származó bájtok sorozatát, és az olvasási bájtok számával előrelépteti a streamen belüli pozíciót.

Read(Span<Char>)

Az aktuális adatfolyamból a megadott puffer hosszával megegyező számú karaktert olvas be, a megadott pufferbe írja őket, és a használt és a streamből beolvasott karakternek megfelelően Encoding alakítja tovább az aktuális pozíciót.

Read7BitEncodedInt()

32 bites egész számban, tömörített formátumban olvasható.

Read7BitEncodedInt64()

Egyszerre 7 bitet olvas be.

ReadBoolean()

Beolvas egy Boolean értéket az aktuális adatfolyamból, és egy bájttal előrelép a stream aktuális pozícióján.

ReadByte()

Beolvassa a következő bájtot az aktuális adatfolyamból, és egy bájttal előrelép a stream aktuális pozícióján.

ReadBytes(Int32)

Beolvassa a megadott számú bájtot az aktuális streamből egy bájttömbbe, és ezzel a bájtszámmal alakítja tovább az aktuális pozíciót.

ReadChar()

Beolvassa a következő karaktert az aktuális streamből, és a stream aktuális pozícióját a használt és a streamből beolvasott konkrét karakternek Encoding megfelelően halad előre.

ReadChars(Int32)

Beolvassa a megadott számú karaktert az aktuális streamből, visszaadja az adatokat egy karaktertömbben, és az aktuális pozíciót a Encoding használt és a streamből beolvasott karakternek megfelelően alakítja tovább.

ReadDecimal()

Beolvassa a decimális értéket az aktuális adatfolyamból, és tizenhat bájttal előrelép a stream aktuális pozícióján.

ReadDouble()

Beolvas egy 8 bájtos lebegőpontos értéket az aktuális adatfolyamból, és nyolc bájttal előrelép a stream aktuális pozícióján.

ReadExactly(Span<Byte>)

Beolvassa a bájtokat az aktuális adatfolyamból, és a streamen belüli pozíciót a feltöltésig buffer előrelépteti.

ReadHalf()

Beolvas egy 2 bájtos lebegőpontos értéket az aktuális adatfolyamból, és két bájttal előrelép a stream aktuális pozícióján.

ReadInt16()

Beolvas egy 2 bájtos aláírt egész számot az aktuális streamből, és két bájttal előrelép a stream aktuális pozícióján.

ReadInt32()

Beolvas egy 4 bájtos aláírt egész számot az aktuális streamből, és négy bájttal előrelép a stream aktuális pozícióján.

ReadInt64()

Beolvas egy 8 bájtos aláírt egész számot az aktuális streamből, és nyolc bájttal előrelép a stream aktuális pozícióján.

ReadSByte()

Beolvas egy aláírt bájtot ebből a streamből, és egy bájttal előrelép a stream aktuális pozícióján.

ReadSingle()

Beolvas egy 4 bájtos lebegőpontos értéket az aktuális adatfolyamból, és négy bájttal előrelép a stream aktuális pozícióján.

ReadString()

Beolvas egy sztringet az aktuális streamből. A sztring előtagja a hossz, amely egyszerre hét bit egész számként van kódolva.

ReadUInt16()

Egy 2 bájtos, aláíratlan egész számot olvas be az aktuális streamből kis endian kódolással, és két bájttal előrelépteti a stream pozícióját.

ReadUInt32()

Beolvas egy 4 bájtos, aláíratlan egész számot az aktuális adatfolyamból, és négy bájttal lép előre a stream pozícióján.

ReadUInt64()

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

ToString()

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

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

Explicit interfész-implementációk

Name Description
IDisposable.Dispose()

Ez az API a termékinfrastruktúrát támogatja, és közvetlenül a kódból nem használható.

A /> másként nem konfigurált kiadásokat ad ki.

A következőre érvényes:

Lásd még