BinaryReader Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
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 |
| 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 |
| Read7BitEncodedInt() |
Leest in een 32-bits geheel getal in gecomprimeerde indeling. |
| ReadBoolean() |
Hiermee leest u een |
| 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 |
| 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 |
| 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). |