BinaryReader Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser primitiva datatyper som binära värden i en specifik kodning.
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
- Arv
-
BinaryReader
- Attribut
- Implementeringar
Exempel
Följande kodexempel visar hur du lagrar och hämtar programinställningar i en fil.
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
Kommentarer
Klassen BinaryReader innehåller metoder som förenklar läsning av primitiva datatyper från en dataström. Du kan till exempel använda ReadBoolean metoden för att läsa nästa byte som ett booleskt värde och föra fram den aktuella positionen i strömmen med en byte. Klassen innehåller läsmetoder som stöder olika datatyper.
När du skapar en ny instans av BinaryReader klassen anger du dataströmmen som ska läsas från, och du kan också ange typen av kodning och om du vill lämna strömmen öppen efter att objektet har inaktiverats BinaryReader . Om du inte anger någon kodningstyp används UTF-8.
Important
Den här typen implementerar IDisposable gränssnittet. När du har använt typen bör du kassera den på ett direkt eller indirekt sätt. Om du vill ta bort typen direkt anropar du dess Dispose metod i ett try/catch block. Om du vill ta bort det indirekt använder du en språkkonstruktion som using (i C#) eller Using (i Visual Basic). Mer information finns i avsnittet "Använda ett objekt som implementerar IDisposable" i IDisposable gränssnittet.
Konstruktorer
| Name | Description |
|---|---|
| BinaryReader(Stream, Encoding, Boolean) |
Initierar en ny instans av BinaryReader klassen baserat på den angivna dataströmmen och teckenkodningen, och du kan också lämna strömmen öppen. |
| BinaryReader(Stream, Encoding) |
Initierar en ny instans av BinaryReader klassen baserat på den angivna dataströmmen och teckenkodningen. |
| BinaryReader(Stream) |
Initierar en ny instans av BinaryReader klassen baserat på den angivna strömmen och använder UTF-8-kodning. |
Egenskaper
| Name | Description |
|---|---|
| BaseStream |
Exponerar åtkomst till den underliggande strömmen för BinaryReader. |
Metoder
| Name | Description |
|---|---|
| Close() |
Stänger den aktuella läsaren och den underliggande strömmen. |
| Dispose() |
Släpper alla resurser som används av den aktuella instansen BinaryReader av klassen. |
| Dispose(Boolean) |
Släpper de ohanterade resurser som används av BinaryReader klassen och släpper eventuellt de hanterade resurserna. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| FillBuffer(Int32) |
Fyller den interna bufferten med det angivna antalet byte som lästs från strömmen. |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| PeekChar() |
Returnerar nästa tillgängliga tecken och avancerar inte byte- eller teckenpositionen. |
| Read() |
Läser tecken från den underliggande strömmen och för fram strömmens aktuella position i enlighet med det |
| Read(Byte[], Int32, Int32) |
Läser det angivna antalet byte från strömmen, med början från en angiven punkt i bytematrisen. |
| Read(Char[], Int32, Int32) |
Läser det angivna antalet tecken från strömmen, med början från en angiven punkt i teckenmatrisen. |
| Read(Span<Byte>) |
Läser en sekvens med byte från den aktuella dataströmmen och flyttar positionen inom dataströmmen med antalet lästa byte. |
| Read(Span<Char>) |
Läser, från den aktuella strömmen, samma antal tecken som längden på den angivna bufferten, skriver dem i den angivna bufferten och flyttar fram den aktuella positionen i enlighet med det |
| Read7BitEncodedInt() |
Läser i ett 32-bitars heltal i komprimerat format. |
| ReadBoolean() |
Läser ett |
| ReadByte() |
Läser nästa byte från den aktuella strömmen och för fram strömmens aktuella position med en byte. |
| ReadBytes(Int32) |
Läser det angivna antalet byte från den aktuella strömmen till en bytematris och avancerar den aktuella positionen med det antalet byte. |
| ReadChar() |
Läser nästa tecken från den aktuella strömmen och avancerar strömmens aktuella position i enlighet med det |
| ReadChars(Int32) |
Läser det angivna antalet tecken från den aktuella strömmen, returnerar data i en teckenmatris och flyttar fram den aktuella positionen i enlighet med det |
| ReadDecimal() |
Läser ett decimalvärde från den aktuella strömmen och ökar strömmens aktuella position med sexton byte. |
| ReadDouble() |
Läser ett flyttalsvärde på 8 byte från den aktuella strömmen och ökar strömmens aktuella position med åtta byte. |
| ReadInt16() |
Läser ett 2 byte signerat heltal från den aktuella strömmen och avancerar strömmens aktuella position med två byte. |
| ReadInt32() |
Läser ett 4 byte signerat heltal från den aktuella strömmen och avancerar strömmens aktuella position med fyra byte. |
| ReadInt64() |
Läser ett 8 byte signerat heltal från den aktuella strömmen och avancerar strömmens aktuella position med åtta byte. |
| ReadSByte() |
Läser en signerad byte från den här strömmen och avancerar strömmens aktuella position med en byte. |
| ReadSingle() |
Läser ett flyttalsvärde på 4 byte från den aktuella strömmen och för fram strömmens aktuella position med fyra byte. |
| ReadString() |
Läser en sträng från den aktuella strömmen. Strängen är prefix med längden, kodad som ett heltal sju bitar i taget. |
| ReadUInt16() |
Läser ett 2 bytes osignerat heltal från den aktuella strömmen med hjälp av little-endian-kodning och flyttar fram strömmens position med två byte. |
| ReadUInt32() |
Läser ett osignerat heltal på 4 byte från den aktuella strömmen och ökar strömmens position med fyra byte. |
| ReadUInt64() |
Läser ett osignerat heltal på 8 byte från den aktuella strömmen och ökar strömmens position med åtta byte. |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Detta API stöder produktinfrastrukturen och är inte avsett att användas direkt från koden. BaseStream Släpper om inget annat har konfigurerats av BinaryReader(Stream, Encoding, Boolean). |