BinaryReader Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest primitive Datentypen als Binärwerte in einer spezifischen Codierung.
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
- Vererbung
-
BinaryReader
- Attribute
- Implementiert
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Anwendungseinstellungen in einer Datei gespeichert und abgerufen werden.
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
Hinweise
Die BinaryReader -Klasse stellt Methoden bereit, die das Lesen primitiver Datentypen aus einem Stream vereinfachen. Beispielsweise können Sie die ReadBoolean -Methode verwenden, um das nächste Byte als booleschen Wert zu lesen und die aktuelle Position im Stream um ein Byte zu optimieren. Die -Klasse enthält Lesemethoden, die verschiedene Datentypen unterstützen.
Wenn Sie eine neue instance der BinaryReader -Klasse erstellen, geben Sie den Datenstrom zum Lesen an und geben optional den Codierungstyp an und geben an, ob der Stream nach dem Löschen des BinaryReader Objekts geöffnet bleiben soll. Wenn Sie keinen Codierungstyp angeben, wird UTF-8 verwendet.
Wichtig
Dieser Typ implementiert die IDisposable-Schnittstelle. Nach Abschluss der Verwendung sollten Sie den Typ entweder direkt oder indirekt löschen. Zum direkten Löschen des Typs rufen Sie seine Dispose-Methode in einem try
/catch
-Block auf. Zum indirekten Löschen verwenden Sie ein Sprachkonstrukt wie using
(in C#) oder Using
(in Visual Basic). Weitere Informationen finden Sie im Abschnitt „Verwenden eines Objekts, das IDisposable implementiert“ des Themas „Die IDisposable-Schnittstelle“.
Konstruktoren
BinaryReader(Stream) |
Initialisiert eine neue Instanz der auf dem bereitgestellten Stream basierenden BinaryReader-Klasse mit einer spezifischen Stream- und Zeichencodierung unter Verwendung von UTF-8. |
BinaryReader(Stream, Encoding) |
Initialisiert eine neue Instanz der auf dem bereitgestellten Stream basierenden BinaryReader-Klasse mit einer spezifischen Stream- und Zeichencodierung. |
BinaryReader(Stream, Encoding, Boolean) |
Initialisiert eine neue Instanz der BinaryReader-Klasse auf Grundlage des angegebenen Streams und der Zeichencodierung und lässt den Stream optional geöffnet. |
Eigenschaften
BaseStream |
Gewährt Zugriff auf den zugrunde liegenden Stream von BinaryReader. |
Methoden
Close() |
Schließt den aktuellen Reader und den zugrunde liegenden Stream. |
Dispose() |
Gibt alle von der aktuellen Instanz der BinaryReader-Klasse verwendeten Ressourcen frei. |
Dispose(Boolean) |
Gibt die von der BinaryReader-Klasse verwendeten nicht verwalteten Ressourcen frei und gibt (optional) auch die verwalteten Ressourcen frei. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
FillBuffer(Int32) |
Füllt den internen Puffer mit der angegebenen Anzahl von Bytes, die aus dem Stream gelesen wurden. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
PeekChar() |
Gibt das nächste verfügbare Zeichen zurück, ohne die Byte- oder Zeichenposition zu erhöhen. |
Read() |
Liest Zeichen aus dem zugrunde liegenden Stream und erhöht die aktuelle Position im Stream in Abhängigkeit von der verwendeten |
Read(Byte[], Int32, Int32) |
Liest die angegebene Anzahl von Bytes beginnend bei einem angegebenen Punkt im Bytearray aus dem Datenstrom. |
Read(Char[], Int32, Int32) |
Liest die angegebene Anzahl von Zeichen beginnend bei einem angegebenen Punkt im Zeichenarray aus dem Datenstrom. |
Read(Span<Byte>) |
Liest eine Bytesequenz aus dem aktuellen Stream und setzt die Position in diesem Stream um die Anzahl der gelesenen Bytes nach vorn. |
Read(Span<Char>) |
Liest die gleiche Anzahl von Zeichen aus dem aktuellen Stream wie die Länge des bereitgestellten Puffers, schreibt sie in den bereitgestellten Puffer und erhöht die aktuelle Position in Abhängigkeit von der verwendeten |
Read7BitEncodedInt() |
Liest eine 32-Bit-Ganzzahl in komprimiertem Format. |
Read7BitEncodedInt64() |
Liest jeweils eine Zahl von 7 Bits. |
ReadBoolean() |
Liest einen |
ReadByte() |
Liest das nächste Byte aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 1 Byte. |
ReadBytes(Int32) |
Liest die angegebene Anzahl von Bytes aus dem aktuellen Datenstrom in ein Bytearray und erhöht die aktuelle Position um diese Anzahl von Bytes. |
ReadChar() |
Liest das nächste Zeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream in Abhängigkeit von der verwendeten |
ReadChars(Int32) |
Liest die angegebene Anzahl von Zeichen aus dem aktuellen Datenstrom, gibt die Daten in einem Zeichenarray zurück und erhöht die aktuelle Position in Abhängigkeit von der verwendeten |
ReadDecimal() |
Liest einen Dezimalwert aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 16 Bytes. |
ReadDouble() |
Liest einen 8-Byte-Gleitkommawert aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 8 Bytes. |
ReadHalf() |
Liest einen Gleitkommawert von 2 Byte aus dem aktuellen Stream und erhöht die aktuelle Position des Datenstroms um zwei Bytes. |
ReadInt16() |
Liest eine 2-Byte-Ganzzahl mit Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 2 Bytes. |
ReadInt32() |
Liest eine 4-Byte-Ganzzahl mit Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 4 Bytes. |
ReadInt64() |
Liest eine 8-Byte-Ganzzahl mit Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 8 Bytes. |
ReadSByte() |
Liest ein Byte mit Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um ein Byte. |
ReadSingle() |
Liest einen 4-Byte-Gleitkommawert aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 4 Bytes. |
ReadString() |
Liest eine Zeichenfolge aus dem aktuellen Stream. Die Zeichenfolge weist ein Präfix mit der Länge auf, die als Ganzzahl mit jeweils 7 Bits codiert ist. |
ReadUInt16() |
Liest eine 2-Byte-Ganzzahl ohne Vorzeichen mithilfe einer Little-Endian-Codierung aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 2 Bytes. |
ReadUInt32() |
Liest eine 4-Byte-Ganzzahl ohne Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 4 Bytes. |
ReadUInt64() |
Liest eine 8-Byte-Ganzzahl ohne Vorzeichen aus dem aktuellen Stream und erhöht die aktuelle Position im Stream um 8 Bytes. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IDisposable.Dispose() |
Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht. Gibt den BaseStream frei, sofern nicht anders konfiguriert durch BinaryReader(Stream, Encoding, Boolean). |