BinaryWriter Classe

Definição

Grava tipos primitivos em binário em um fluxo e dá suporte à gravação de cadeias de caracteres em uma codificação específica.

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    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 a seguir demonstra como armazenar e recuperar as configurações do aplicativo em um arquivo.

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

Comentários

A BinaryWriter classe fornece métodos que simplificam a gravação de tipos de dados primitivos em um fluxo. Por exemplo, você pode usar o Write método para gravar um valor booliano no fluxo como um valor de um byte. A classe inclui métodos de gravação que dão suporte a diferentes tipos de dados.

Ao criar uma nova instância da BinaryWriter classe, você fornece o fluxo para gravar e, opcionalmente, especifica o tipo de codificação e se deseja deixar o fluxo aberto depois de descartar o BinaryWriter objeto. Se você não especificar um tipo de codificação, UTF-8 será usado.

Importante

Esse tipo implementa a interface IDisposable. Quando você terminar de usar o tipo, deverá descartá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame o método Dispose dele em um bloco try/catch. Para descartá-lo indiretamente, use um constructo de linguagem como using ( em C#) ou Using (em Visual Basic). Saiba mais na seção "Como usar um objeto que implementa IDisposable" no tópico da interface IDisposable.

Uma classe derivada pode substituir os métodos dessa classe para dar codificações de caracteres exclusivas.

Construtores

BinaryWriter()

Inicializa uma nova instância da classe BinaryWriter que é gravada no fluxo.

BinaryWriter(Stream)

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

BinaryWriter(Stream, Encoding)

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

BinaryWriter(Stream, Encoding, Boolean)

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

Campos

Null

Especifica um BinaryWriter sem repositório de backup.

OutStream

Mantém o fluxo subjacente.

Propriedades

BaseStream

Obtém o fluxo subjacente de BinaryWriter.

Métodos

Close()

Fecha o BinaryWriter atual e o fluxo subjacente.

Dispose()

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

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo BinaryWriter e opcionalmente libera os recursos gerenciados.

DisposeAsync()

Libera de forma assíncrona todos os recursos usados pela instância atual da classe BinaryWriter.

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 todos os dados armazenados em buffer sejam gravados no dispositivo subjacente.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Seek(Int32, SeekOrigin)

Define a posição no fluxo atual.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
Write(Boolean)

Grava um valor Boolean de um byte no fluxo atual, com 0 representando false e 1 representando true.

Write(Byte)

Grava um byte sem sinal no fluxo atual e avança a posição do fluxo em um byte.

Write(Byte[])

Grava uma matriz de bytes no fluxo subjacente.

Write(Byte[], Int32, Int32)

Grava uma região de uma matriz de bytes no fluxo atual.

Write(Char)

Grava um caractere Unicode no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding usado e os caracteres específicos que estão sendo gravados no fluxo.

Write(Char[])

Grava uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding usado e os caracteres específicos que estão sendo gravados no fluxo.

Write(Char[], Int32, Int32)

Grava uma seção de uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o Encoding usado e talvez com os caracteres específicos que estão sendo gravados no fluxo.

Write(Decimal)

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

Write(Double)

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

Write(Half)

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

Write(Int16)

Grava um inteiro com sinal de dois bytes no fluxo atual e avança a posição de fluxo em dois bytes.

Write(Int32)

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

Write(Int64)

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

Write(ReadOnlySpan<Byte>)

Grava um intervalo de bytes no fluxo atual.

Write(ReadOnlySpan<Char>)

Grava um intervalo de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com a Encoding usada e talvez com os caracteres específicos que estão sendo gravados no fluxo.

Write(SByte)

Grava um byte com sinal no fluxo atual e avança a posição do fluxo em um byte.

Write(Single)

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

Write(String)

Grava uma cadeia de caracteres de tamanho prefixado nesse 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 sendo gravados no fluxo.

Write(UInt16)

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

Write(UInt32)

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

Write(UInt64)

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

Write7BitEncodedInt(Int32)

Grava um inteiro de 32 bits em um formato compactado.

Write7BitEncodedInt64(Int64)

Grava um número de 7 bits por vez.

Implantações explícitas de interface

IDisposable.Dispose()

Libera os recursos não gerenciados usados pelo BinaryWriter e opcionalmente libera os recursos gerenciados.

Métodos de Extensão

ConfigureAwait(IAsyncDisposable, Boolean)

Configura como as esperas nas tarefas retornadas de um descartável assíncrono são realizadas.

Aplica-se a

Confira também