BinaryWriter Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 classe BinaryWriter fornece métodos que simplificam a gravação de tipos de dados primitivos em um fluxo. Por exemplo, você pode usar o método Write 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 classe BinaryWriter, 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 objeto BinaryWriter. Se você não especificar um tipo de codificação, UTF-8 será usado.
Importante
Esse tipo implementa a interface IDisposable. Quando terminar de usar o tipo, você deverá descartá-lo direta ou indiretamente. Para descartar o tipo diretamente, chame seu método Dispose em um bloco de try
/catch
. Para descartá-lo indiretamente, use um constructo de linguagem como using
(em C#) ou Using
(no Visual Basic). Para obter mais informações, consulte a seção "Usando 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 grava em um 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 e na codificação de caracteres especificados. |
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 do 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 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 Objectatual. (Herdado de Object) |
Seek(Int32, SeekOrigin) |
Define a posição dentro do fluxo atual. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Write(Boolean) |
Grava um valor de |
Write(Byte) |
Grava um byte sem sinal no fluxo atual e avança a posição do fluxo por 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 |
Write(Char[]) |
Grava uma matriz de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com o |
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 |
Write(Decimal) |
Grava um valor decimal no fluxo atual e avança a posição do fluxo em dezesseis 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 do 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 o |
Write(SByte) |
Grava um byte assinado no fluxo atual e avança a posição do fluxo por 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 com prefixo de comprimento nesse fluxo na codificação atual do BinaryWritere 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 de cada 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 serão executadas. |