BinaryWriter 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.
Scrive i tipi primitivi in un flusso binario e supporta la scrittura di stringhe in una codifica specifica.
public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
type BinaryWriter = class
interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
interface IDisposable
type BinaryWriter = class
interface IAsyncDisposable
interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
- Ereditarietà
-
BinaryWriter
- 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 BinaryWriter classe fornisce metodi che semplificano la scrittura di tipi di dati primitivi in un flusso. Ad esempio, è possibile usare il Write metodo per scrivere un valore booleano nel flusso come valore a un byte. La classe include metodi di scrittura che supportano tipi di dati diversi.
Quando si crea una nuova istanza della BinaryWriter classe , specificare il flusso in cui scrivere e, facoltativamente, specificare il tipo di codifica e se lasciare aperto il flusso dopo l'eliminazione dell'oggetto BinaryWriter . 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 .
Una classe derivata può eseguire l'override dei metodi di questa classe per assegnare codifiche di caratteri univoche.
Costruttori
| Nome | Descrizione |
|---|---|
| BinaryWriter() |
Inizializza una nuova istanza della BinaryWriter classe che scrive in un flusso. |
| BinaryWriter(Stream, Encoding, Boolean) |
Inizializza una nuova istanza della BinaryWriter classe in base al flusso e alla codifica dei caratteri specificati e, facoltativamente, lascia aperto il flusso. |
| BinaryWriter(Stream, Encoding) |
Inizializza una nuova istanza della BinaryWriter classe in base al flusso e alla codifica dei caratteri specificati. |
| BinaryWriter(Stream) |
Inizializza una nuova istanza della BinaryWriter classe in base al flusso specificato e usa la codifica UTF-8. |
Campi
| Nome | Descrizione |
|---|---|
| Null |
Specifica un BinaryWriter oggetto senza archivio di backup. |
| OutStream |
Contiene il flusso sottostante. |
Proprietà
| Nome | Descrizione |
|---|---|
| BaseStream |
Ottiene il flusso sottostante dell'oggetto BinaryWriter. |
Metodi
| Nome | Descrizione |
|---|---|
| Close() |
Chiude l'oggetto corrente BinaryWriter e il flusso sottostante. |
| Dispose() |
Rilascia tutte le risorse usate dall'istanza corrente della BinaryWriter classe . |
| Dispose(Boolean) |
Rilascia le risorse non gestite usate da BinaryWriter e, facoltativamente, rilascia le risorse gestite. |
| DisposeAsync() |
Rilascia in modo asincrono tutte le risorse usate dall'istanza corrente della BinaryWriter classe . |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| Flush() |
Cancella tutti i buffer per il writer corrente e determina la scrittura di tutti i dati memorizzati nel buffer nel dispositivo sottostante. |
| 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) |
| Seek(Int32, SeekOrigin) |
Imposta la posizione all'interno del flusso corrente. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
| Write(Boolean) |
Scrive un valore a un byte |
| Write(Byte) |
Scrive un byte senza segno nel flusso corrente e sposta in avanti di un byte la posizione del flusso. |
| Write(Byte[], Int32, Int32) |
Scrive un'area di una matrice di byte nel flusso corrente. |
| Write(Byte[]) |
Scrive una matrice di byte nel flusso sottostante. |
| Write(Char) |
Scrive un carattere Unicode nel flusso corrente e sposta in avanti la posizione corrente del flusso in base ai |
| Write(Char[], Int32, Int32) |
Scrive una sezione di una matrice di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso in base all'oggetto |
| Write(Char[]) |
Scrive una matrice di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso in base |
| Write(Decimal) |
Scrive un valore decimale nel flusso corrente e sposta in avanti di sedici byte la posizione del flusso. |
| Write(Double) |
Scrive un valore a virgola mobile a otto byte nel flusso corrente e sposta in avanti la posizione del flusso di otto byte. |
| Write(Int16) |
Scrive un intero con segno a due byte nel flusso corrente e sposta in avanti la posizione del flusso di due byte. |
| Write(Int32) |
Scrive un intero con segno a quattro byte nel flusso corrente e sposta in avanti la posizione del flusso di quattro byte. |
| Write(Int64) |
Scrive un intero con segno a otto byte nel flusso corrente e sposta in avanti la posizione del flusso di otto byte. |
| Write(ReadOnlySpan<Byte>) |
Scrive un intervallo di byte nel flusso corrente. |
| Write(ReadOnlySpan<Char>) |
Scrive un intervallo di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso in base all'oggetto |
| Write(SByte) |
Scrive un byte firmato nel flusso corrente e sposta in avanti la posizione del flusso di un byte. |
| Write(Single) |
Scrive un valore a virgola mobile a quattro byte nel flusso corrente e sposta in avanti la posizione del flusso di quattro byte. |
| Write(String) |
Scrive una stringa con prefisso di lunghezza in questo flusso nella codifica corrente di BinaryWritere sposta in avanti la posizione corrente del flusso in base alla codifica usata e ai caratteri specifici scritti nel flusso. |
| Write(UInt16) |
Scrive un intero senza segno a due byte nel flusso corrente e sposta in avanti la posizione del flusso di due byte. |
| Write(UInt32) |
Scrive un intero senza segno a quattro byte nel flusso corrente e sposta in avanti la posizione del flusso di quattro byte. |
| Write(UInt64) |
Scrive un intero senza segno a otto byte nel flusso corrente e sposta in avanti la posizione del flusso di otto byte. |
| Write7BitEncodedInt(Int32) |
Scrive un intero a 32 bit in un formato compresso. |
Implementazioni dell'interfaccia esplicita
| Nome | Descrizione |
|---|---|
| IDisposable.Dispose() |
Rilascia le risorse non gestite usate da BinaryWriter e, facoltativamente, rilascia le risorse gestite. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Configura il modo in cui verranno eseguite le attese nelle attività restituite da un oggetto eliminabile asincrono. |