BinaryWriter Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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 |
| 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 |
| 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 |
| Write(Char[]) |
Escreve um array de caracteres no fluxo atual e avança a posição atual do fluxo de acordo com os |
| 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 |
| 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. |