BinaryReader Klas

Definitie

Leest primitieve gegevenstypen als binaire waarden in een specifieke codering.

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
Overname
BinaryReader
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u toepassingsinstellingen in een bestand opslaat en ophaalt.

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

Opmerkingen

De BinaryReader klasse biedt methoden die het lezen van primitieve gegevenstypen vanuit een stroom vereenvoudigen. U kunt bijvoorbeeld de ReadBoolean methode gebruiken om de volgende byte te lezen als een Booleaanse waarde en de huidige positie in de stroom met één byte te verplaatsen. De klasse bevat leesmethoden die ondersteuning bieden voor verschillende gegevenstypen.

Wanneer u een nieuw exemplaar van de BinaryReader klasse maakt, geeft u de stroom op waaruit moet worden gelezen en geeft u desgewenst het type codering op en geeft u op of de stream open moet blijven nadat het BinaryReader object is verwijderd. Als u geen coderingstype opgeeft, wordt UTF-8 gebruikt.

Important

Met dit type wordt de IDisposable interface geïmplementeerd. Wanneer u klaar bent met het gebruik van het type, moet u het direct of indirect verwijderen. Als u het type rechtstreeks wilt verwijderen, roept u de Dispose methode aan in een try/catch blok. Als u deze indirect wilt verwijderen, gebruikt u een taalconstructie zoals using (in C#) of Using (in Visual Basic). Zie de sectie 'Using an Object that Implements IDisposable' (Een object gebruiken dat IDisposable implementeert) in het IDisposable interfaceonderwerp voor meer informatie.

Constructors

Name Description
BinaryReader(Stream, Encoding, Boolean)

Initialiseert een nieuw exemplaar van de BinaryReader klasse op basis van de opgegeven stroom en tekencodering en laat eventueel de stream open.

BinaryReader(Stream, Encoding)

Initialiseert een nieuw exemplaar van de BinaryReader klasse op basis van de opgegeven stroom en tekencodering.

BinaryReader(Stream)

Initialiseert een nieuw exemplaar van de BinaryReader klasse op basis van de opgegeven stream en maakt gebruik van UTF-8-codering.

Eigenschappen

Name Description
BaseStream

Hiermee wordt de toegang tot de onderliggende stroom van de BinaryReader.

Methoden

Name Description
Close()

Hiermee sluit u de huidige lezer en de onderliggende stroom.

Dispose()

Alle resources die door het huidige exemplaar van de BinaryReader klasse worden gebruikt, worden vrijgegeven.

Dispose(Boolean)

Publiceert de niet-beheerde resources die door de BinaryReader klasse worden gebruikt en brengt eventueel de beheerde resources vrij.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
FillBuffer(Int32)

Vult de interne buffer met het opgegeven aantal bytes dat uit de stream is gelezen.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
PeekChar()

Hiermee wordt het volgende beschikbare teken geretourneerd en wordt de byte- of tekenpositie niet vooruit.

Read()

Leest tekens uit de onderliggende stroom en krijgt de huidige positie van de stroom in overeenstemming met het Encoding gebruikte en het specifieke teken dat uit de stroom wordt gelezen.

Read(Byte[], Int32, Int32)

Hiermee wordt het opgegeven aantal bytes uit de stream gelezen, te beginnen vanaf een opgegeven punt in de bytematrix.

Read(Char[], Int32, Int32)

Leest het opgegeven aantal tekens uit de stroom, beginnend vanaf een opgegeven punt in de tekenmatrix.

Read(Span<Byte>)

Hiermee wordt een reeks bytes uit de huidige stroom gelezen en wordt de positie binnen de stream verplaatst door het aantal bytes dat is gelezen.

Read(Span<Char>)

Leesbewerkingen, van de huidige stroom, hetzelfde aantal tekens als de lengte van de opgegeven buffer, schrijft deze in de opgegeven buffer en gaat verder met de huidige positie in overeenstemming met het Encoding gebruikte en het specifieke teken dat uit de stroom wordt gelezen.

Read7BitEncodedInt()

Leest in een 32-bits geheel getal in gecomprimeerde indeling.

ReadBoolean()

Hiermee leest u een Boolean waarde uit de huidige stroom en wordt de huidige positie van de stroom met één byte vooruit gelezen.

ReadByte()

Hiermee wordt de volgende byte uit de huidige stroom gelezen en wordt de huidige positie van de stroom met één byte vooruit gelezen.

ReadBytes(Int32)

Hiermee wordt het opgegeven aantal bytes uit de huidige stroom in een bytematrix gelezen en wordt de huidige positie door dat aantal bytes verplaatst.

ReadChar()

Leest het volgende teken uit de huidige stroom en gaat verder met de huidige positie van de stroom overeenkomstig het Encoding gebruikte en het specifieke teken dat uit de stroom wordt gelezen.

ReadChars(Int32)

Leest het opgegeven aantal tekens uit de huidige stroom, retourneert de gegevens in een tekenmatrix en gaat naar de huidige positie in overeenstemming met het Encoding gebruikte teken en het specifieke teken dat uit de stroom wordt gelezen.

ReadDecimal()

Hiermee wordt een decimale waarde uit de huidige stroom gelezen en wordt de huidige positie van de stroom met zestien bytes verplaatst.

ReadDouble()

Hiermee wordt een 8-byte-drijvende-kommawaarde uit de huidige stroom gelezen en wordt de huidige positie van de stroom met acht bytes verplaatst.

ReadInt16()

Hiermee wordt een geheel getal van 2 bytes uit de huidige stroom gelezen en wordt de huidige positie van de stream met twee bytes verplaatst.

ReadInt32()

Hiermee wordt een geheel getal van vier bytes gelezen dat is ondertekend vanuit de huidige stroom en wordt de huidige positie van de stream met vier bytes verplaatst.

ReadInt64()

Hiermee wordt een geheel getal van 8 bytes uit de huidige stroom gelezen en wordt de huidige positie van de stream met acht bytes verplaatst.

ReadSByte()

Hiermee leest u een ondertekende byte uit deze stroom en wordt de huidige positie van de stream met één byte vooruit gezet.

ReadSingle()

Leest een drijvende-kommawaarde van 4 bytes uit de huidige stroom en verwijst naar de huidige positie van de stroom met vier bytes.

ReadString()

Hiermee leest u een tekenreeks uit de huidige stroom. De tekenreeks wordt voorafgegaan door de lengte, gecodeerd als een geheel getal van zeven bits tegelijk.

ReadUInt16()

Hiermee wordt een geheel getal van 2 bytes uit de huidige stroom gelezen met behulp van little-endian-codering en wordt de positie van de stream met twee bytes verplaatst.

ReadUInt32()

Leest een niet-ondertekend geheel getal van vier bytes uit de huidige stroom en verplaatst de positie van de stream met vier bytes.

ReadUInt64()

Hiermee wordt een geheel getal van 8 bytes uit de huidige stroom gelezen en wordt de positie van de stream met acht bytes verplaatst.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Expliciete interface-implementaties

Name Description
IDisposable.Dispose()

Deze API ondersteunt de productinfrastructuur en is niet bedoeld om rechtstreeks vanuit de code te gebruiken.

Geeft de BaseStream tenzij anders geconfigureerd door BinaryReader(Stream, Encoding, Boolean).

Van toepassing op

Zie ook