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 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 após 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 fornecer 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 |
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 |
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 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 |
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 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 são realizadas. |
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários