BinaryWriter Classe

Definizione

Scrive i tipi primitivi in formato binario in un flusso e supporta la scrittura delle stringhe in una codifica specifica.Writes primitive types in binary to a stream and supports writing strings in a specific encoding.

public ref class BinaryWriter : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Ereditarietà
BinaryWriter
Attributi
Implementazioni

Esempi

Nell'esempio di codice riportato di seguito viene illustrato come archiviare e recuperare le impostazioni dell'applicazione in un file.The following code example demonstrates how to store and retrieve application settings in a file.

using System;
using System.IO;

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
        {
            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 (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
            {
                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);
        }
    }
}
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.The BinaryWriter class provides methods that simplify writing primitive data types to a stream. Ad esempio, è possibile usare il Write metodo per scrivere un valore booleano nel flusso come valore a un byte.For example, you can use the Write method to write a Boolean value to the stream as a one-byte value. La classe include metodi Write che supportano tipi di dati diversi.The class includes write methods that support different data types.

Quando si crea una nuova istanza della BinaryWriter classe, si fornisce il flusso in cui scrivere e, facoltativamente, si specifica il tipo di codifica e se lasciare il flusso aperto dopo avere eliminato l' BinaryWriter oggetto.When you create a new instance of the BinaryWriter class, you provide the stream to write to, and optionally specify the type of encoding and whether to leave the stream open after disposing the BinaryWriter object. Se non si specifica un tipo di codifica, viene utilizzato UTF-8.If you do not specify an encoding type, UTF-8 is used.

Importante

Il tipo implementa l'interfaccia IDisposable.This type implements the IDisposable interface. Dopo aver utilizzato il tipo, è necessario eliminarlo direttamente o indirettamente.When you have finished using the type, you should dispose of it either directly or indirectly. Per eliminare direttamente il tipo, chiamare il metodo Dispose in un blocco try/catch.To dispose of the type directly, call its Dispose method in a try/catch block. Per eliminarlo indirettamente, utilizzare un costrutto di linguaggio come ad esempio using in C# o Using in Visual Basic.To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Per altre informazioni, vedere la sezione "Uso di un oggetto che implementa IDisposable" nell'argomento relativo all'interfaccia IDisposable.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Una classe derivata può eseguire l'override dei metodi di questa classe per fornire codifiche di caratteri univoci.A derived class can override the methods of this class to give unique character encodings.

Costruttori

BinaryWriter()

Inizializza una nuova istanza della classe BinaryWriter che scrive in un flusso.Initializes a new instance of the BinaryWriter class that writes to a stream.

BinaryWriter(Stream)

Inizializza una nuova istanza della classe BinaryWriter in base al flusso specificato e usando la codifica UTF-8.Initializes a new instance of the BinaryWriter class based on the specified stream and using UTF-8 encoding.

BinaryWriter(Stream, Encoding)

Inizializza una nuova istanza della classe BinaryWriter in base alla codifica dei caratteri e del flusso specificata.Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding.

BinaryWriter(Stream, Encoding, Boolean)

Inizializza una nuova istanza della classe BinaryWriter in base alla codifica dei caratteri e di flusso specificati. Facoltativamente mantiene aperto il flusso.Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding, and optionally leaves the stream open.

Campi

Null

Specifica un oggetto BinaryWriter privo di archivio di backup.Specifies a BinaryWriter with no backing store.

OutStream

Contiene il flusso sottostante.Holds the underlying stream.

Proprietà

BaseStream

Ottiene il flusso sottostante dell'oggetto BinaryWriter.Gets the underlying stream of the BinaryWriter.

Metodi

Close()

Chiude l'oggetto BinaryWriter corrente e il flusso sottostante.Closes the current BinaryWriter and the underlying stream.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe BinaryWriter.Releases all resources used by the current instance of the BinaryWriter class.

Dispose(Boolean)

Rilascia le risorse non gestite usate da BinaryWriter e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.

DisposeAsync()

Rilascia in modo asincrono le risorse usate dall'istanza corrente della classe BinaryWriter.Asynchronously releases all resources used by the current instance of the BinaryWriter class.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Flush()

Cancella i dati di tutti i buffer del writer corrente e consente la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Seek(Int32, SeekOrigin)

Imposta la posizione all'interno del flusso corrente.Sets the position within the current stream.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)
Write(Boolean)

Scrive un valore Boolean a un byte nel flusso corrente, con 0 che rappresenta false e 1 che rappresenta true.Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.

Write(Byte)

Scrive un byte senza segno nel flusso corrente e sposta in avanti di un byte la posizione del flusso.Writes an unsigned byte to the current stream and advances the stream position by one byte.

Write(Byte[])

Scrive una matrice di byte nel flusso sottostante.Writes a byte array to the underlying stream.

Write(Byte[], Int32, Int32)

Scrive un'area di una matrice di byte nel flusso corrente.Writes a region of a byte array to the current stream.

Write(Char)

Scrive un carattere Unicode nel flusso corrente e sposta in avanti la posizione corrente del flusso secondo il valore Encoding usato e i caratteri specifici scritti nel flusso.Writes a Unicode character to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(Char[])

Scrive una matrice di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso secondo il valore Encoding usato e i caratteri specifici scritti nel flusso.Writes a character array to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(Char[], Int32, Int32)

Scrive una sezione di una matrice di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso secondo il valore Encoding usato e i caratteri specifici scritti nel flusso.Writes a section of a character array to the current stream, and advances the current position of the stream in accordance with the Encoding used and perhaps the specific characters being written to the stream.

Write(Decimal)

Scrive un valore decimale nel flusso corrente e sposta in avanti di sedici byte la posizione del flusso.Writes a decimal value to the current stream and advances the stream position by sixteen bytes.

Write(Double)

Scrive un valore a virgola mobile a otto byte nel flusso corrente e sposta in avanti di otto byte la posizione del flusso.Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes.

Write(Int16)

Scrive un intero con segno a due byte nel flusso corrente e sposta in avanti di due byte la posizione del flusso.Writes a two-byte signed integer to the current stream and advances the stream position by two bytes.

Write(Int32)

Scrive un intero con segno a quattro byte nel flusso corrente e sposta in avanti di quattro byte la posizione del flusso.Writes a four-byte signed integer to the current stream and advances the stream position by four bytes.

Write(Int64)

Scrive un intero con segno a otto byte nel flusso corrente e sposta in avanti di otto byte la posizione del flusso.Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes.

Write(ReadOnlySpan<Byte>)

Scrive un intervallo di byte nel flusso corrente.Writes a span of bytes to the current stream.

Write(ReadOnlySpan<Char>)

Scrive un intervallo di caratteri nel flusso corrente e sposta in avanti la posizione corrente del flusso secondo il valore Encoding usato e i caratteri specifici scritti nel flusso.Writes a span of characters to the current stream, and advances the current position of the stream in accordance with the Encoding used and perhaps the specific characters being written to the stream.

Write(SByte)

Scrive un byte con segno nel flusso corrente e sposta in avanti di un byte la posizione del flusso.Writes a signed byte to the current stream and advances the stream position by one byte.

Write(Single)

Scrive un valore a virgola mobile a quattro byte nel flusso corrente e sposta in avanti di quattro byte la posizione del flusso.Writes a four-byte floating-point value to the current stream and advances the stream position by four bytes.

Write(String)

Scrive una stringa con prefisso di lunghezza nel flusso con la codifica corrente dell'oggetto BinaryWriter e sposta in avanti la posizione corrente del flusso secondo la codifica usata e i caratteri specifici scritti nel flusso.Writes a length-prefixed string to this stream in the current encoding of the BinaryWriter, and advances the current position of the stream in accordance with the encoding used and the specific characters being written to the stream.

Write(UInt16)

Scrive un intero senza segno a due byte nel flusso corrente e sposta in avanti di due byte la posizione del flusso.Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes.

Write(UInt32)

Scrive un intero senza segno a quattro byte nel flusso corrente e sposta in avanti di quattro byte la posizione del flusso.Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes.

Write(UInt64)

Scrive un intero senza segno a otto byte nel flusso corrente e sposta in avanti di otto byte la posizione del flusso.Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes.

Write7BitEncodedInt(Int32)

Scrive un intero a 32 bit in un formato compresso.Writes a 32-bit integer in a compressed format.

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Rilascia le risorse non gestite usate da BinaryWriter e, facoltativamente, le risorse gestite.Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.

Si applica a

Vedi anche