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 determinata codifica.
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 , si specifica il flusso da cui eseguire la lettura e, facoltativamente, si specifica il tipo di codifica e se lasciare aperto il flusso dopo l'eliminazione dell'oggetto BinaryReader . Se non si specifica un tipo di codifica, viene usato UTF-8.
Importante
Il tipo implementa l'interfaccia IDisposable. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try
/catch
. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come ad esempio using
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
BinaryReader(Stream) |
Inizializza una nuova istanza della classe BinaryReader in base al flusso specificato e usando la codifica UTF-8. |
BinaryReader(Stream, Encoding) |
Inizializza una nuova istanza della classe BinaryReader in base alla codifica dei caratteri e del flusso specificata. |
BinaryReader(Stream, Encoding, Boolean) |
Inizializza una nuova istanza della classe BinaryReader in base alla codifica dei caratteri e di flusso specificati. Facoltativamente mantiene aperto il flusso. |
Proprietà
BaseStream |
Espone l'accesso al flusso sottostante dell'oggetto BinaryReader. |
Metodi
Close() |
Chiude il visualizzatore corrente e il flusso sottostante. |
Dispose() |
Rilascia tutte le risorse usate dall'istanza corrente della classe BinaryReader. |
Dispose(Boolean) |
Rilascia le risorse non gestite usate dalla classe BinaryReader e facoltativamente le risorse gestite. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
FillBuffer(Int32) |
Inserisce nel buffer interno il numero specificato di byte letti dal flusso. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
PeekChar() |
Restituisce il successivo carattere disponibile senza spostare in avanti la posizione del byte o del carattere. |
Read() |
Legge i caratteri dal flusso sottostante e sposta in avanti la posizione corrente del flusso secondo il valore |
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 fa avanzare la posizione nel flusso del numero di byte letti. |
Read(Span<Char>) |
Legge, a partire del flusso corrente, lo stesso numero di caratteri della lunghezza del buffer specificato, li scrive nel buffer specificato e sposta in avanti la posizione corrente in base al valore |
Read7BitEncodedInt() |
Legge un intero a 32 bit in formato compresso. |
Read7BitEncodedInt64() |
Legge un numero di 7 bit alla volta. |
ReadBoolean() |
Legge un valore |
ReadByte() |
Legge il byte successivo dal flusso corrente e sposta in avanti di 1 byte la posizione corrente del flusso. |
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 secondo il valore |
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 secondo il valore |
ReadDecimal() |
Legge un valore decimale dal flusso corrente e sposta in avanti di sedici byte la posizione corrente del flusso. |
ReadDouble() |
Legge un valore a virgola mobile a 8 byte dal flusso corrente e sposta in avanti di otto byte la posizione corrente del flusso. |
ReadHalf() |
Legge un valore a virgola mobile a 2 byte dal flusso corrente e sposta in avanti la posizione corrente del flusso di due byte. |
ReadInt16() |
Legge un intero con segno a 2 byte dal flusso corrente e sposta in avanti di 2 byte la posizione corrente del flusso. |
ReadInt32() |
Legge un intero con segno a 4 byte dal flusso corrente e sposta in avanti di quattro byte la posizione corrente del flusso. |
ReadInt64() |
Legge un intero con segno a 8 byte dal flusso corrente e sposta in avanti di 8 byte la posizione del flusso. |
ReadSByte() |
Legge un byte con segno dal flusso corrente e sposta in avanti di un byte la posizione corrente del flusso. |
ReadSingle() |
Legge un valore a virgola mobile a 4 byte dal flusso corrente e sposta in avanti di quattro byte la posizione corrente del flusso. |
ReadString() |
Legge una stringa dal flusso corrente. La stringa ha un prefisso di lunghezza e viene codificata come intero, 7 bit alla volta. |
ReadUInt16() |
Legge un intero senza segno a 2 byte dal flusso corrente usando la codifica little-endian e sposta in avanti di due byte la posizione del flusso. |
ReadUInt32() |
Legge un intero senza segno a 4 byte dal flusso corrente e sposta in avanti di quattro byte la posizione del flusso. |
ReadUInt64() |
Legge un intero senza segno a 8 byte dal flusso corrente e sposta in avanti di otto byte la posizione del flusso. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
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). |