BinaryReader Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lee tipos de datos primitivos como valores binarios en una codificación 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
- Herencia
-
BinaryReader
- Atributos
- Implementaciones
Ejemplos
En el ejemplo de código siguiente se muestra cómo almacenar y recuperar la configuración de la aplicación en un archivo.
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
Comentarios
La BinaryReader clase proporciona métodos que simplifican la lectura de tipos de datos primitivos de una secuencia. Por ejemplo, puede usar el ReadBoolean método para leer el siguiente byte como un valor booleano y avanzar la posición actual en la secuencia por un byte. La clase incluye métodos de lectura que admiten diferentes tipos de datos.
Cuando se crea una nueva instancia de la BinaryReader clase , se proporciona la secuencia desde la que se va a leer y, opcionalmente, se especifica el tipo de codificación y si se debe dejar abierta la secuencia después de eliminar el BinaryReader objeto. Si no especifica un tipo de codificación, se usa UTF-8.
Importante
Este tipo implementa la interfaz IDisposable. Cuando haya terminado de utilizar el tipo, debe desecharlo directa o indirectamente. Para eliminar el tipo directamente, llame a su método Dispose en un bloque try
/catch
. Para deshacerse de él indirectamente, use una construcción de lenguaje como using
(en C#) o Using
(en Visual Basic). Para más información, vea la sección "Uso de objetos que implementan IDisposable" en el tema de la interfaz IDisposable.
Constructores
BinaryReader(Stream) |
Inicializa una nueva instancia de la clase BinaryReader basada en la secuencia especificada y usando codificación UTF-8. |
BinaryReader(Stream, Encoding) |
Inicializa una nueva instancia de la clase BinaryReader basada en la secuencia y codificación de caracteres especificadas. |
BinaryReader(Stream, Encoding, Boolean) |
Inicializa una nueva instancia de la clase BinaryReader basada en la secuencia y la codificación de caracteres especificadas y, opcionalmente, deja la secuencia abierta. |
Propiedades
BaseStream |
Expone el acceso a la secuencia subyacente de BinaryReader. |
Métodos
Close() |
Cierra el lector actual y la secuencia subyacente. |
Dispose() |
Libera todos los recursos usados por la instancia actual de la clase BinaryReader. |
Dispose(Boolean) |
Libera los recursos no administrados utilizados por la clase BinaryReader y, de forma opcional, libera los recursos administrados. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
FillBuffer(Int32) |
Rellena el búfer interno con el número especificado de bytes leídos de la secuencia. |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
PeekChar() |
Devuelve el siguiente carácter disponible y no hace avanzar la posición de bytes o caracteres. |
Read() |
Lee los caracteres de la secuencia subyacente y hace avanzar la posición actual de la secuencia de acuerdo con la |
Read(Byte[], Int32, Int32) |
Lee el número especificado de bytes de la secuencia, a partir del punto especificado en la matriz de bytes. |
Read(Char[], Int32, Int32) |
Lee el número especificado de caracteres de la secuencia, a partir del punto especificado en la matriz de caracteres. |
Read(Span<Byte>) |
Lee una secuencia de bytes en el flujo actual y avanza la posición en el flujo según el número de bytes leídos. |
Read(Span<Char>) |
Lee, en la secuencia actual, el mismo número de caracteres que la longitud del búfer proporcionado, los escribe en el búfer proporcionado y hace avanzar la posición actual de acuerdo con el elemento |
Read7BitEncodedInt() |
Lee un entero de 32 bits en formato comprimido. |
Read7BitEncodedInt64() |
Lee un número 7 bits a la vez. |
ReadBoolean() |
Lee un valor |
ReadByte() |
Lee el siguiente byte de la secuencia actual y hace avanzar un byte la posición actual de la secuencia. |
ReadBytes(Int32) |
Lee el número especificado de bytes de la secuencia actual en una matriz de bytes y hace avanzar la posición actual en función del número de bytes leídos. |
ReadChar() |
Lee el siguiente carácter de la secuencia actual y hace avanzar la posición actual de la secuencia de acuerdo con la |
ReadChars(Int32) |
Lee el número especificado de caracteres de la secuencia actual, devuelve los datos en una matriz de caracteres y hace avanzar la posición actual de acuerdo con la |
ReadDecimal() |
Lee un valor decimal de la secuencia actual y hace avanzar la posición actual de la secuencia dieciséis bytes. |
ReadDouble() |
Lee un valor de punto flotante de 8 bytes de la secuencia actual y hace avanzar la posición actual de la secuencia en ocho bytes. |
ReadHalf() |
Lee un valor de punto flotante de 2 bytes de la secuencia actual y avanza la posición actual de la secuencia en dos bytes. |
ReadInt16() |
Lee un entero con signo de 2 bytes en la secuencia actual y hace avanzar la posición actual de la secuencia en dos bytes. |
ReadInt32() |
Lee un entero con signo de 4 bytes en la secuencia actual y hace avanzar la posición actual de la secuencia en cuatro bytes. |
ReadInt64() |
Lee un entero con signo de 8 bytes de la secuencia actual y avanza la posición actual de la secuencia en ocho bytes. |
ReadSByte() |
Lee un byte con signo de esta secuencia y hace avanzar la posición actual de la secuencia en un byte. |
ReadSingle() |
Lee un valor de punto flotante de 4 bytes en la secuencia actual y hace avanzar la posición actual de la secuencia en cuatro bytes. |
ReadString() |
Lee una cadena de la secuencia actual. La cadena tiene como prefijo la longitud, codificada como un entero de siete bits cada vez. |
ReadUInt16() |
Lee un entero sin signo de 2 bytes de la secuencia actual con la codificación "little-endian" y hace avanzar la posición de la secuencia en dos bytes. |
ReadUInt32() |
Lee un entero sin signo de 4 bytes de la secuencia actual y hace avanzar la posición de la secuencia en cuatro bytes. |
ReadUInt64() |
Lee un entero sin signo de 8 bytes de la secuencia actual y hace avanzar la posición de la secuencia en ocho bytes. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
IDisposable.Dispose() |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Libera a BaseStream menos que se configure lo contrario mediante BinaryReader(Stream, Encoding, Boolean). |