BinaryReader Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Legge i tipi di dati primitivi come valori binari in una codifica specifica.
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
- Ereditarietà
-
BinaryReader
- Attributi
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come archiviare e recuperare le impostazioni dell'applicazione in un file.
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
Commenti
La BinaryReader classe fornisce metodi che semplificano la lettura dei tipi di dati primitivi da un flusso. Ad esempio, è possibile usare il ReadBoolean metodo per leggere il byte successivo come valore booleano e avanzare la posizione corrente nel flusso di un byte. La classe include metodi di lettura che supportano tipi di dati diversi.
Quando si crea una nuova istanza della BinaryReader classe , specificare il flusso da cui leggere e, facoltativamente, specificare il tipo di codifica e se lasciare aperto il flusso dopo la eliminazione dell'oggetto BinaryReader . Se non si specifica un tipo di codifica, viene usato UTF-8.
Importante
Questo tipo implementa l'interfaccia IDisposable . Al termine dell'uso del tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il Dispose relativo metodo in un try/catch blocco. Per eliminarlo indirettamente, usare un costrutto del linguaggio, ad using esempio (in C#) o Using (in Visual Basic). Per altre informazioni, vedere la sezione "Uso di un oggetto che implementa IDisposable" nell'argomento relativo all'interfaccia IDisposable .
Costruttori
| Nome | Descrizione |
|---|---|
| BinaryReader(Stream, Encoding, Boolean) |
Inizializza una nuova istanza della BinaryReader classe in base al flusso e alla codifica dei caratteri specificati e, facoltativamente, lascia aperto il flusso. |
| BinaryReader(Stream, Encoding) |
Inizializza una nuova istanza della BinaryReader classe in base al flusso e alla codifica dei caratteri specificati. |
| BinaryReader(Stream) |
Inizializza una nuova istanza della BinaryReader classe in base al flusso specificato e usa la codifica UTF-8. |
Proprietà
| Nome | Descrizione |
|---|---|
| BaseStream |
Espone l'accesso al flusso sottostante di BinaryReader. |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude il lettore corrente e il flusso sottostante. |
| Dispose() |
Rilascia tutte le risorse usate dall'istanza corrente della BinaryReader classe . |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate dalla BinaryReader classe e, facoltativamente, rilascia le risorse gestite. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| FillBuffer(Int32) |
Riempie il buffer interno con il numero specificato di byte letti dal flusso. |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| PeekChar() |
Restituisce il carattere disponibile successivo e non avanza il byte o la posizione del carattere. |
| Read() |
Legge i caratteri dal flusso sottostante e sposta in avanti la posizione corrente del flusso in base all'oggetto |
| Read(Byte[], Int32, Int32) |
Legge il numero specificato di byte dal flusso, a partire da un punto specificato nella matrice di byte. |
| Read(Char[], Int32, Int32) |
Legge il numero specificato di caratteri dal flusso, a partire da un punto specificato nella matrice di caratteri. |
| Read(Span<Byte>) |
Legge una sequenza di byte dal flusso corrente e sposta in avanti la posizione all'interno del flusso in base al numero di byte letti. |
| Read(Span<Char>) |
Legge, dal flusso corrente, lo stesso numero di caratteri della lunghezza del buffer fornito, li scrive nel buffer fornito e sposta in avanti la posizione corrente in base all'oggetto |
| Read7BitEncodedInt() |
Legge in un intero a 32 bit in formato compresso. |
| ReadBoolean() |
Legge un |
| ReadByte() |
Legge il byte successivo dal flusso corrente e sposta in avanti la posizione corrente del flusso di un byte. |
| ReadBytes(Int32) |
Legge il numero specificato di byte dal flusso corrente in una matrice di byte e sposta in avanti la posizione corrente in base a tale numero di byte. |
| ReadChar() |
Legge il carattere successivo dal flusso corrente e sposta in avanti la posizione corrente del flusso in base all'oggetto |
| ReadChars(Int32) |
Legge il numero specificato di caratteri dal flusso corrente, restituisce i dati in una matrice di caratteri e sposta in avanti la posizione corrente in base all'oggetto |
| ReadDecimal() |
Legge un valore decimale dal flusso corrente e sposta in avanti la posizione corrente del flusso di sedici byte. |
| ReadDouble() |
Legge un valore a virgola mobile a 8 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di otto byte. |
| ReadInt16() |
Legge un intero con segno a 2 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di due byte. |
| ReadInt32() |
Legge un intero con segno a 4 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di quattro byte. |
| ReadInt64() |
Legge un intero con segno a 8 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di otto byte. |
| ReadSByte() |
Legge un byte firmato da questo flusso e sposta in avanti la posizione corrente del flusso di un byte. |
| ReadSingle() |
Legge un valore a virgola mobile a 4 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di quattro byte. |
| ReadString() |
Legge una stringa dal flusso corrente. La stringa è preceduta dalla lunghezza, codificata come numero intero sette bit alla volta. |
| ReadUInt16() |
Legge un intero senza segno a 2 byte dal flusso corrente usando la codifica little-endian e sposta in avanti la posizione del flusso di due byte. |
| ReadUInt32() |
Legge un intero senza segno a 4 byte dal flusso corrente e sposta in avanti la posizione del flusso di quattro byte. |
| ReadUInt64() |
Legge un intero senza segno a 8 byte dal flusso corrente e sposta in avanti la posizione del flusso di otto byte. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDisposable.Dispose() |
Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice. Rilascia se BaseStream non diversamente configurato da BinaryReader(Stream, Encoding, Boolean). |