BinaryWriter Classe

Definição

Escreve tipos primitivos em binário num fluxo e suporta a escrita de cadeias numa codificação específica.

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
Herança
BinaryWriter
Atributos
Implementações

Exemplos

O exemplo de código seguinte demonstra como armazenar e recuperar definições de aplicação num ficheiro.

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

Observações

A BinaryWriter classe fornece métodos que simplificam a escrita de tipos de dados primitivos num fluxo. Por exemplo, pode usar o Write método para escrever um valor booleano no fluxo como um valor de um byte. A aula inclui métodos de escrita que suportam diferentes tipos de dados.

Quando crias uma nova instância da BinaryWriter classe, forneces o fluxo para escrever e, opcionalmente, especificas o tipo de codificação e se deves deixar o fluxo aberto após eliminares o BinaryWriter objeto. Se não especificar um tipo de codificação, utiliza-se UTF-8.

Important

Este tipo implementa a interface IDisposable. Quando terminar de usar o tipo, você deve eliminá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame seu método Dispose em um bloco try/catch. Para descartá-lo indiretamente, use uma construção de linguagem como using (em C#) ou Using (em Visual Basic). Para obter mais informações, consulte a seção "Usando um objeto que implementa IDisposable" no tópico da IDisposable interface.

Uma classe derivada pode sobrepor os métodos desta classe para fornecer codificações de caracteres únicas.

Construtores

Name Description
BinaryWriter()

Inicializa uma nova instância da BinaryWriter classe que escreve num fluxo.

BinaryWriter(Stream, Encoding, Boolean)

Inicializa uma nova instância da BinaryWriter classe com base no fluxo e codificação de caracteres especificados, e opcionalmente deixa o fluxo aberto.

BinaryWriter(Stream, Encoding)

Inicializa uma nova instância da BinaryWriter classe com base no fluxo e codificação de caracteres especificados.

BinaryWriter(Stream)

Inicializa uma nova instância da BinaryWriter classe com base no fluxo especificado e usando codificação UTF-8.

Campos

Name Description
Null

Especifica uma BinaryWriter loja sem suporte.

OutStream

Mantém o fluxo subjacente.

Propriedades

Name Description
BaseStream

Obtém o fluxo subjacente do BinaryWriter.

Métodos

Name Description
Close()

Fecha a corrente BinaryWriter e o fluxo subjacente.

Dispose()

Liberta todos os recursos usados pela instância atual da BinaryWriter classe.

Dispose(Boolean)

Liberta os recursos não geridos usados pelo BinaryWriter e opcionalmente liberta os recursos geridos.

DisposeAsync()

Liberta assíncronamente todos os recursos usados pela instância atual da BinaryWriter classe.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Flush()

Limpa todos os buffers do gravador atual e faz com que quaisquer dados em buffer sejam escritos no dispositivo subjacente.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Seek(Int32, SeekOrigin)

Define a posição dentro do fluxo atual.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
Write(Boolean)

Escreve um valor de um byte Boolean no fluxo atual, com 0 a representar false e 1 a representar true.

Write(Byte)

Escreve um byte não assinado no fluxo atual e avança a posição do fluxo em um byte.

Write(Byte[], Int32, Int32)

Escreve uma região de um array de bytes no fluxo atual.

Write(Byte[])

Escreve um array de bytes no fluxo subjacente.

Write(Char)

Escreve um carácter Unicode no fluxo atual e avança a posição atual do fluxo de acordo com os Encoding caracteres usados e específicos que estão a ser escritos no fluxo.

Write(Char[], Int32, Int32)

Escreve uma secção de um array de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com os Encoding caracteres usados e talvez os específicos que estão a ser escritos no fluxo.

Write(Char[])

Escreve um array de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com os Encoding caracteres usados e específicos que estão a ser escritos no fluxo.

Write(Decimal)

Escreve um valor decimal no fluxo atual e avança a posição do fluxo em dezasseis bytes.

Write(Double)

Escreve um valor de ponto flutuante de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.

Write(Int16)

Escreve um inteiro assinado de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes.

Write(Int32)

Escreve um inteiro assinado de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.

Write(Int64)

Escreve um inteiro assinado de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.

Write(ReadOnlySpan<Byte>)

Escreve um intervalo de bytes no fluxo atual.

Write(ReadOnlySpan<Char>)

Escreve um intervalo de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com os Encoding caracteres usados e talvez os caracteres específicos que estão a ser escritos no fluxo.

Write(SByte)

Escreve um byte assinado no fluxo atual e avança a posição do fluxo em um byte.

Write(Single)

Escreve um valor de vírgula flutuante de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.

Write(String)

Escreve uma cadeia com prefixo de comprimento neste fluxo na codificação atual do BinaryWriter, e avança a posição atual do fluxo de acordo com a codificação usada e os caracteres específicos que estão a ser escritos no fluxo.

Write(UInt16)

Escreve um inteiro sem sinal de dois bytes no fluxo atual e avança a posição do fluxo em dois bytes.

Write(UInt32)

Escreve um inteiro sem sinal de quatro bytes no fluxo atual e avança a posição do fluxo em quatro bytes.

Write(UInt64)

Escreve um inteiro sem sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito bytes.

Write7BitEncodedInt(Int32)

Escreve um inteiro de 32 bits num formato comprimido.

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Liberta os recursos não geridos usados pelo BinaryWriter e opcionalmente liberta os recursos geridos.

Métodos da Extensão

Name Description
ConfigureAwait(IAsyncDisposable, Boolean)

Configura como aguarda nas tarefas devolvidas de um descartável assíncrono será realizada.

Aplica-se a

Ver também