BinaryReader 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.
Lê os tipos de dados primitivos como valores binários em uma codificação específica.
public ref class BinaryReader : IDisposable
public class BinaryReader : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryReader : IDisposable
type BinaryReader = class
interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryReader = class
interface IDisposable
Public Class BinaryReader
Implements IDisposable
- Herança
-
BinaryReader
- 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 BinaryReader classe fornece métodos que simplificam a leitura de tipos de dados primitivos de um fluxo. Por exemplo, você pode usar o ReadBoolean método para ler o próximo byte como um valor booliano e avançar a posição atual no fluxo por um byte. A classe inclui métodos de leitura que dão suporte a diferentes tipos de dados.
Ao criar uma nova instância da BinaryReader classe, você fornece o fluxo para leitura e, opcionalmente, especifica o tipo de codificação e se deseja deixar o fluxo aberto depois de descartar o BinaryReader 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.
Construtores
BinaryReader(Stream) |
Inicializa uma nova instância da classe BinaryReader com base no fluxo especificado e usando a codificação UTF-8. |
BinaryReader(Stream, Encoding) |
Inicializa uma nova instância da classe BinaryReader com base no fluxo especificado e na codificação de caracteres. |
BinaryReader(Stream, Encoding, Boolean) |
Inicializa uma nova instância da classe BinaryReader com base no fluxo e na codificação de caracteres especificados e, opcionalmente, deixa o fluxo aberto. |
Propriedades
BaseStream |
Expõe o acesso ao fluxo subjacente do BinaryReader. |
Métodos
Close() |
Fecha o leitor atual e o fluxo subjacente. |
Dispose() |
Libera todos os recursos usados pela instância atual da classe BinaryReader. |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pela classe BinaryReader e, opcionalmente, libera os recursos gerenciados. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
FillBuffer(Int32) |
Preenche o buffer interno com o número especificado de bytes lidos do fluxo. |
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) |
PeekChar() |
Retorna o próximo caractere disponível e não avance a posição do caractere ou byte. |
Read() |
Lê os caracteres do fluxo subjacente e avança a posição atual do fluxo de acordo com o |
Read(Byte[], Int32, Int32) |
Lê o número especificado de bytes do fluxo, começando em um ponto especificado na matriz de bytes. |
Read(Char[], Int32, Int32) |
Lê o número especificado de caracteres do fluxo, começando em um ponto especificado na matriz de caracteres. |
Read(Span<Byte>) |
Lê uma sequência de bytes do fluxo atual e avança a posição no fluxo até o número de bytes lidos. |
Read(Span<Char>) |
Lê, no fluxo atual, o mesmo número de caracteres que o tamanho do buffer fornecido, grava-os no buffer fornecido e avança a posição atual de acordo com o |
Read7BitEncodedInt() |
Lê um inteiro de 32 bits em formato compactado. |
Read7BitEncodedInt64() |
Lê um número de 7 bits de cada vez. |
ReadBoolean() |
Lê um valor |
ReadByte() |
Lê o próximo byte do fluxo atual e avança a posição atual do fluxo em um byte. |
ReadBytes(Int32) |
Lê o número especificado de bytes do fluxo atual em uma matriz de bytes e avança a posição atual pelo número de bytes. |
ReadChar() |
Lê o caractere seguinte do fluxo atual e avança a posição atual do fluxo de acordo com o |
ReadChars(Int32) |
Lê o número especificado de caracteres do fluxo atual, retorna os dados em uma matriz de caracteres e avança a posição atual de acordo com o |
ReadDecimal() |
Lê um valor decimal do fluxo atual e avança a posição atual do fluxo em 16 bytes. |
ReadDouble() |
Lê um valor de ponto flutuante de 8 bytes do fluxo atual e avança a posição atual do fluxo em oito bytes. |
ReadHalf() |
Lê um valor de ponto flutuante de 2 bytes do fluxo atual e avança a posição atual do fluxo em dois bytes. |
ReadInt16() |
Lê um inteiro com sinal de 2 bytes do fluxo atual e avança a posição atual do fluxo em dois bytes. |
ReadInt32() |
Lê um inteiro com sinal de 4 bytes do fluxo atual e avança a posição atual do fluxo em quatro bytes. |
ReadInt64() |
Lê um inteiro com sinal de oito bytes do fluxo atual e avança a posição atual do fluxo em oito bytes. |
ReadSByte() |
Lê um byte assinado desse fluxo e avança a posição atual do fluxo em um byte. |
ReadSingle() |
Lê um valor de ponto flutuante de 4 bytes do fluxo atual e avança a posição atual do fluxo em quatro bytes. |
ReadString() |
Lê uma cadeia de caracteres do fluxo atual. A cadeia de caracteres é prefixada com o tamanho, codificado como um inteiro, sete bits por vez. |
ReadUInt16() |
Lê um inteiro sem sinal de 2 bytes do fluxo atual usando a codificação little-endian e avança a posição do fluxo em dois bytes. |
ReadUInt32() |
Lê um inteiro sem sinal de quatro bytes do fluxo atual e avança a posição do fluxo em quatro bytes. |
ReadUInt64() |
Lê um inteiro sem sinal de 8 bytes do fluxo atual e avança a posição do fluxo em oito bytes. |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
IDisposable.Dispose() |
Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código. Libera o, BaseStream a menos que configurado de outra forma por BinaryReader(Stream, Encoding, Boolean). |