Ler em inglês

Compartilhar via


BinaryWriter.Write Método

Definição

Grava um valor no fluxo atual.

Sobrecargas

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(Byte[], Int32, Int32)

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

Write(UInt64)

Grava um inteiro sem sinal de oito bytes no fluxo atual e avança a posição do fluxo em oito 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(UInt16)

Grava um inteiro sem sinal de dois bytes no fluxo atual e avança a posição do fluxo em dois 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(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(SByte)

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

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(ReadOnlySpan<Byte>)

Grava um intervalo de bytes no fluxo atual.

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(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(Int16)

Grava um inteiro com sinal de dois bytes no fluxo atual e avança a posição de fluxo em dois 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(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(Decimal)

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

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(Byte[])

Grava uma matriz de bytes no fluxo subjacente.

Write(Byte)

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

Write(Boolean)

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

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(Char[], Int32, Int32)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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.

public virtual void Write (char[] chars, int index, int count);

Parâmetros

chars
Char[]

Uma matriz de caracteres que contém os dados a serem gravados.

index
Int32

O índice do primeiro caractere a ser lido do chars e gravado no fluxo.

count
Int32

O número de caracteres a serem lidos do chars e gravados no fluxo.

Exceções

O tamanho do buffer menos index é menor que count.

chars é null.

index ou count é negativo.

Ocorre um erro de E/S.

O fluxo está fechado.

Exemplos

O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(
            Path.InvalidPathChars, 0, Path.InvalidPathChars.Length);

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        int arraySize = (int)(memStream.Length - memStream.Position);
        char[] memoryData = new char[arraySize];
        binReader.Read(memoryData, 0, arraySize);
        Console.WriteLine(memoryData);
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Byte[], Int32, Int32)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (byte[] buffer, int index, int count);

Parâmetros

buffer
Byte[]

Uma matriz de bytes que contém os dados a serem gravados.

index
Int32

O índice do primeiro byte para ler do buffer e gravar no fluxo.

count
Int32

O número de bytes para ler do buffer e gravar no fluxo.

Exceções

O tamanho do buffer menos index é menor que count.

buffer é null.

index ou count é negativo.

Ocorre um erro de E/S.

O fluxo está fechado.

Exemplos

O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.

using System;
using System.IO;

namespace BinaryRW
{
    class Program
    {
        static void Main(string[] args)
        {
            const int arrayLength = 1000;
            byte[] dataArray = new byte[arrayLength];
            byte[] verifyArray = new byte[arrayLength];

            new Random().NextBytes(dataArray);

            using (BinaryWriter binWriter = new BinaryWriter(new MemoryStream()))
            {
                Console.WriteLine("Writing the data.");
                binWriter.Write(dataArray, 0, arrayLength);

                using (BinaryReader binReader = new BinaryReader(binWriter.BaseStream))
                {
                    binReader.BaseStream.Position = 0;

                    if (binReader.Read(verifyArray, 0, arrayLength) != arrayLength)
                    {
                        Console.WriteLine("Error writing the data.");
                        return;
                    }
                }
            }

            for (int i = 0; i < arrayLength; i++)
            {
                if (verifyArray[i] != dataArray[i])
                {
                    Console.WriteLine("Error writing the data.");
                    return;
                }
            }

            Console.WriteLine("The data was written and verified.");
        }
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(UInt64)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Importante

Esta API não está em conformidade com CLS.

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

[System.CLSCompliant(false)]
public virtual void Write (ulong value);

Parâmetros

value
UInt64

O inteiro sem sinal de oito bytes a ser gravado.

Atributos

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(UInt32)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Importante

Esta API não está em conformidade com CLS.

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

[System.CLSCompliant(false)]
public virtual void Write (uint value);

Parâmetros

value
UInt32

O inteiro sem sinal de quatro bytes a ser gravado.

Atributos

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(UInt16)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Importante

Esta API não está em conformidade com CLS.

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

[System.CLSCompliant(false)]
public virtual void Write (ushort value);

Parâmetros

value
UInt16

O inteiro sem sinal de dois bytes a ser gravado.

Atributos

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(String)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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.

public virtual void Write (string value);

Parâmetros

value
String

O valor a ser gravado.

Exceções

Ocorre um erro de E/S.

value é null.

O fluxo está fechado.

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);
        }
    }
}

Comentários

Prefixado por comprimento significa que esse método grava primeiro o comprimento da cadeia de caracteres, em bytes, quando codificado com a BinaryWriter codificação atual da instância no fluxo. Esse valor é gravado como um inteiro sem sinal. Em seguida, esse método grava muitos bytes no fluxo.

Por exemplo, a cadeia de caracteres "A" tem um comprimento de 1, mas quando codificada com UTF-16; o comprimento é de 2 bytes, portanto, o valor gravado no prefixo é 2 e 3 bytes são gravados no fluxo, incluindo o prefixo.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Single)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (float value);

Parâmetros

value
Single

O valor de ponto flutuante de quatro bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

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);
        }
    }
}

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(SByte)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Importante

Esta API não está em conformidade com CLS.

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

[System.CLSCompliant(false)]
public virtual void Write (sbyte value);

Parâmetros

value
SByte

O byte com sinal a ser gravado.

Atributos

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(ReadOnlySpan<Char>)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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.

public virtual void Write (ReadOnlySpan<char> chars);

Parâmetros

chars
ReadOnlySpan<Char>

Um intervalo de char a ser gravado.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

Write(ReadOnlySpan<Byte>)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Grava um intervalo de bytes no fluxo atual.

public virtual void Write (ReadOnlySpan<byte> buffer);

Parâmetros

buffer
ReadOnlySpan<Byte>

O intervalo de bytes a ser gravado.

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

Write(Int64)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (long value);

Parâmetros

value
Int64

O inteiro com sinal de oito bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Char[])

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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.

public virtual void Write (char[] chars);

Parâmetros

chars
Char[]

Uma matriz de caracteres que contém os dados a serem gravados.

Exceções

chars é null.

O fluxo está fechado.

Ocorre um erro de E/S.

Exemplos

O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        binWriter.Write(Path.InvalidPathChars);

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        Console.WriteLine(binReader.ReadChars(
            (int)(memStream.Length - memStream.Position)));
    }
}

Comentários

A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.

Para fazer isso... Veja o exemplo neste tópico...
Crie um arquivo de texto. Como gravar texto em um arquivo
Gravar em um arquivo de texto. Como gravar texto em um arquivo
Ler de um arquivo de texto. Como ler texto de um arquivo
Acrescente o texto a um arquivo. Como abrir e acrescentar a um arquivo de log

File.AppendText

FileInfo.AppendText
Obtenha o tamanho de um arquivo. FileInfo.Length
Obtenha os atributos de um arquivo. File.GetAttributes
Defina os atributos de um arquivo. File.SetAttributes
Determine se existe um arquivo. File.Exists
Ler de um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado
Gravar em um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Int16)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (short value);

Parâmetros

value
Int16

O inteiro com sinal de dois bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.

Para fazer isso... Veja o exemplo neste tópico...
Crie um arquivo de texto. Como gravar texto em um arquivo
Gravar em um arquivo de texto. Como gravar texto em um arquivo
Ler de um arquivo de texto. Como ler texto de um arquivo
Acrescente o texto a um arquivo. Como abrir e acrescentar a um arquivo de log

File.AppendText

FileInfo.AppendText
Obtenha o tamanho de um arquivo. FileInfo.Length
Obtenha os atributos de um arquivo. File.GetAttributes
Defina os atributos de um arquivo. File.SetAttributes
Determine se existe um arquivo. File.Exists
Ler de um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado
Gravar em um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Half)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (Half value);

Parâmetros

value
Half

O valor de ponto flutuante de dois bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Exemplos

O exemplo de código a seguir mostra como ler e gravar Double dados na memória usando as BinaryReader classes e BinaryWriter na parte superior da MemoryStream classe . MemoryStream somente lê e grava Byte dados.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i;
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double[] dataArray = new double[arrayLength];
        for(i = 0; i < arrayLength; i++)
        {
            dataArray[i] = 100.1 * randomGenerator.NextDouble();
        }

        using(BinaryWriter binWriter =
            new BinaryWriter(new MemoryStream()))
        {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0; i < arrayLength; i++)
            {
                binWriter.Write(dataArray[i]);
            }

            // Create a reader using the stream from the writer.
            using(BinaryReader binReader =
                new BinaryReader(binWriter.BaseStream))
            {
                try
                {
                    // Return to the beginning of the stream.
                    binReader.BaseStream.Position = 0;

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0; i < arrayLength; i++)
                    {
                        if(binReader.ReadDouble() != dataArray[i])
                        {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    }
                    Console.WriteLine("The data was written " +
                        "and verified.");
                }
                catch(EndOfStreamException e)
                {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().Name);
                }
            }
        }
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET 6, 7, 8, 9

Write(Double)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (double value);

Parâmetros

value
Double

O valor de ponto flutuante de oito bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Exemplos

O exemplo de código a seguir mostra como ler e gravar Double dados na memória usando as BinaryReader classes e BinaryWriter na parte superior da MemoryStream classe . MemoryStream somente lê e grava Byte dados.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i;
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        Random randomGenerator = new Random();
        double[] dataArray = new double[arrayLength];
        for(i = 0; i < arrayLength; i++)
        {
            dataArray[i] = 100.1 * randomGenerator.NextDouble();
        }

        using(BinaryWriter binWriter =
            new BinaryWriter(new MemoryStream()))
        {
            // Write the data to the stream.
            Console.WriteLine("Writing data to the stream.");
            for(i = 0; i < arrayLength; i++)
            {
                binWriter.Write(dataArray[i]);
            }

            // Create a reader using the stream from the writer.
            using(BinaryReader binReader =
                new BinaryReader(binWriter.BaseStream))
            {
                try
                {
                    // Return to the beginning of the stream.
                    binReader.BaseStream.Position = 0;

                    // Read and verify the data.
                    Console.WriteLine("Verifying the written data.");
                    for(i = 0; i < arrayLength; i++)
                    {
                        if(binReader.ReadDouble() != dataArray[i])
                        {
                            Console.WriteLine("Error writing data.");
                            break;
                        }
                    }
                    Console.WriteLine("The data was written " +
                        "and verified.");
                }
                catch(EndOfStreamException e)
                {
                    Console.WriteLine("Error writing data: {0}.",
                        e.GetType().Name);
                }
            }
        }
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Decimal)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (decimal value);

Parâmetros

value
Decimal

O valor decimal a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Comentários

A tabela a seguir lista exemplos de outras tarefas de E/S típicas ou relacionadas.

Para fazer isso... Veja o exemplo neste tópico...
Crie um arquivo de texto. Como gravar texto em um arquivo
Gravar em um arquivo de texto. Como gravar texto em um arquivo
Ler de um arquivo de texto. Como ler texto de um arquivo
Acrescente o texto a um arquivo. Como abrir e acrescentar a um arquivo de log

File.AppendText

FileInfo.AppendText
Obtenha o tamanho de um arquivo. FileInfo.Length
Obtenha os atributos de um arquivo. File.GetAttributes
Defina os atributos de um arquivo. File.SetAttributes
Determine se existe um arquivo. File.Exists
Ler de um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado
Gravar em um arquivo binário. Como ler e gravar em um arquivo de dados recém-criado

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Char)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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.

public virtual void Write (char ch);

Parâmetros

ch
Char

O caractere Unicode não alternativo a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

ch é um caractere alternativo único.

Exemplos

O exemplo de código a seguir mostra como ler e gravar dados usando a memória como um repositório de backup.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i = 0;
        char[] invalidPathChars = Path.InvalidPathChars;
        MemoryStream memStream = new MemoryStream();
        BinaryWriter binWriter = new BinaryWriter(memStream);

        // Write to memory.
        binWriter.Write("Invalid file path characters are: ");
        for(i = 0; i < invalidPathChars.Length; i++)
        {
            binWriter.Write(invalidPathChars[i]);
        }

        // Create the reader using the same MemoryStream
        // as used with the writer.
        BinaryReader binReader = new BinaryReader(memStream);

        // Set Position to the beginning of the stream.
        memStream.Position = 0;

        // Read the data from memory and write it to the console.
        Console.Write(binReader.ReadString());
        char[] memoryData =
            new char[memStream.Length - memStream.Position];
        for(i = 0; i < memoryData.Length; i++)
        {
            memoryData[i] = binReader.ReadChar();
        }
        Console.WriteLine(memoryData);
    }
}

Comentários

Devido a conflitos de formatação de dados, não é recomendável usar esse método com as seguintes codificações:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Os caracteres alternativos Unicode devem ser gravados como pares na mesma chamada, não individualmente. Se você precisar de suporte para pares alternativos em seu aplicativo, considere usar uma matriz de caracteres e a sobrecarga do Write método.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Byte[])

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

Grava uma matriz de bytes no fluxo subjacente.

public virtual void Write (byte[] buffer);

Parâmetros

buffer
Byte[]

Uma matriz de bytes que contém os dados a serem gravados.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

buffer é null.

Exemplos

O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        const int arrayLength = 1000;

        // Create random data to write to the stream.
        byte[] dataArray = new byte[arrayLength];
        new Random().NextBytes(dataArray);

        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());

        // Write the data to the stream.
        Console.WriteLine("Writing the data.");
        binWriter.Write(dataArray);

        // Create the reader using the stream from the writer.
        BinaryReader binReader =
            new BinaryReader(binWriter.BaseStream);

        // Set Position to the beginning of the stream.
        binReader.BaseStream.Position = 0;

        // Read and verify the data.
        byte[] verifyArray = binReader.ReadBytes(arrayLength);
        if(verifyArray.Length != arrayLength)
        {
            Console.WriteLine("Error writing the data.");
            return;
        }
        for(int i = 0; i < arrayLength; i++)
        {
            if(verifyArray[i] != dataArray[i])
            {
                Console.WriteLine("Error writing the data.");
                return;
            }
        }
        Console.WriteLine("The data was written and verified.");
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Byte)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (byte value);

Parâmetros

value
Byte

O byte sem sinal a gravar.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

Exemplos

O exemplo de código a seguir mostra como gravar dados binários usando a memória como um repositório de backup e, em seguida, verificar se os dados foram gravados corretamente.

using System;
using System.IO;

class BinaryRW
{
    static void Main()
    {
        int i = 0;

        // Create random data to write to the stream.
        byte[] writeArray = new byte[1000];
        new Random().NextBytes(writeArray);

        BinaryWriter binWriter = new BinaryWriter(new MemoryStream());
        BinaryReader binReader =
            new BinaryReader(binWriter.BaseStream);

        try
        {
            // Write the data to the stream.
            Console.WriteLine("Writing the data.");
            for(i = 0; i < writeArray.Length; i++)
            {
                binWriter.Write(writeArray[i]);
            }

            // Set the stream position to the beginning of the stream.
            binReader.BaseStream.Position = 0;

            // Read and verify the data from the stream.
            for(i = 0; i < writeArray.Length; i++)
            {
                if(binReader.ReadByte() != writeArray[i])
                {
                    Console.WriteLine("Error writing the data.");
                    return;
                }
            }
            Console.WriteLine("The data was written and verified.");
        }

        // Catch the EndOfStreamException and write an error message.
        catch(EndOfStreamException e)
        {
            Console.WriteLine("Error writing the data.\n{0}",
                e.GetType().Name);
        }
    }
}

Comentários

Devido a conflitos de formatação de dados, não é recomendável usar esse método com as seguintes codificações:

  • UTF-7

  • ISO-2022-JP

  • ISCII

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Boolean)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (bool value);

Parâmetros

value
Boolean

O valor Boolean a ser gravado (0 ou 1).

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

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);
        }
    }
}

Comentários

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Write(Int32)

Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs
Origem:
BinaryWriter.cs

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

public virtual void Write (int value);

Parâmetros

value
Int32

O inteiro com sinal de quatro bytes a ser gravado.

Exceções

Ocorre um erro de E/S.

O fluxo está fechado.

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);
        }
    }
}

Comentários

BinaryWriter armazena esse tipo de dados no formato little endian.

Para obter uma lista de tarefas comuns de E/S, consulte Tarefas comuns de E/S.

Confira também

Aplica-se a

.NET 9 e outras versões
Produto Versões
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0