BinaryReader Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
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 |
| 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 |
| Read7BitEncodedInt() |
32 bites egész számban, tömörített formátumban olvasható. |
| Read7BitEncodedInt64() |
Egyszerre 7 bitet olvas be. |
| ReadBoolean() |
Beolvas egy |
| 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 |
| 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 |
| 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 |
| 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 |