BinaryWriter 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í.
Escribe tipos primitivos en formato binario en una secuencia y admite la escritura de cadenas en una codificación 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
- Herencia
-
BinaryWriter
- 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 BinaryWriter clase proporciona métodos que simplifican la escritura de tipos de datos primitivos en una secuencia. Por ejemplo, puede usar el Write método para escribir un valor booleano en la secuencia como un valor de un byte. La clase incluye métodos de escritura que admiten distintos tipos de datos.
Al crear una nueva instancia de la BinaryWriter clase , se proporciona la secuencia en la que se va a escribir y, opcionalmente, se especifica el tipo de codificación y si se debe dejar abierta la secuencia después de eliminar el BinaryWriter 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.
Una clase derivada puede invalidar los métodos de esta clase para proporcionar codificaciones de caracteres únicas.
Constructores
BinaryWriter() |
Inicializa una nueva instancia de la clase BinaryWriter que escribe en una secuencia. |
BinaryWriter(Stream) |
Inicializa una nueva instancia de la clase BinaryWriter basada en la secuencia especificada y usando codificación UTF-8. |
BinaryWriter(Stream, Encoding) |
Inicializa una nueva instancia de la clase BinaryWriter basada en la secuencia y codificación de caracteres especificadas. |
BinaryWriter(Stream, Encoding, Boolean) |
Inicializa una nueva instancia de la clase BinaryWriter basada en la secuencia y la codificación de caracteres especificadas y, opcionalmente, deja la secuencia abierta. |
Campos
Null |
Especifica un objeto BinaryWriter sin memoria auxiliar. |
OutStream |
Contiene la secuencia subyacente. |
Propiedades
BaseStream |
Obtiene la secuencia subyacente del objeto BinaryWriter. |
Métodos
Close() |
Cierra el BinaryWriter actual y la secuencia subyacente. |
Dispose() |
Libera todos los recursos usados por la instancia actual de la clase BinaryWriter. |
Dispose(Boolean) |
Libera los recursos no administrados que usa BinaryWriter y, de forma opcional, libera los recursos administrados. |
DisposeAsync() |
Libera de forma asincrónica todos los recursos que usa la instancia actual de la clase BinaryWriter. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
Flush() |
Borra todos los búferes del sistema de escritura actual y hace que todos los datos almacenados en el búfer se escriban en el dispositivo subyacente. |
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) |
Seek(Int32, SeekOrigin) |
Establece la posición en el flujo actual. |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Write(Boolean) |
Escribe un valor |
Write(Byte) |
Escribe un byte sin signo en la secuencia actual y avanza la posición de la secuencia en un byte. |
Write(Byte[]) |
Escribe una matriz de bytes en la secuencia subyacente. |
Write(Byte[], Int32, Int32) |
Escribe una región de una matriz de bytes en la secuencia actual. |
Write(Char) |
Escribe un carácter Unicode en la secuencia actual y avanza la posición actual de la secuencia de acuerdo con el |
Write(Char[]) |
Escribe una matriz de caracteres en la secuencia actual y avanza la posición actual de la secuencia de acuerdo con el |
Write(Char[], Int32, Int32) |
Escribe una sección de una matriz de caracteres en la secuencia actual y avanza la posición actual de la secuencia de acuerdo con el |
Write(Decimal) |
Escribe un valor decimal en la secuencia actual y avanza la posición de la secuencia en dieciséis bytes. |
Write(Double) |
Escribe un valor de punto flotante de ocho bytes en la secuencia actual y avanza la posición de la secuencia en ocho bytes. |
Write(Half) |
Escribe un valor de punto flotante de dos bytes en la secuencia actual y avanza la posición de la secuencia en dos bytes. |
Write(Int16) |
Escribe un entero con signo de dos bytes en la secuencia actual y avanza la posición de la secuencia en dos bytes. |
Write(Int32) |
Escribe un entero con signo de cuatro bytes en la secuencia actual y avanza la posición de la secuencia en cuatro bytes. |
Write(Int64) |
Escribe un entero con signo de ocho bytes en la secuencia actual y avanza la posición de la secuencia en ocho bytes. |
Write(ReadOnlySpan<Byte>) |
Escribe un intervalo de bytes en la secuencia actual. |
Write(ReadOnlySpan<Char>) |
Escribe un intervalo de caracteres en la secuencia actual y avanza la posición actual de la secuencia de acuerdo con el elemento |
Write(SByte) |
Escribe un byte con signo en la secuencia actual y avanza la posición de la secuencia en un byte. |
Write(Single) |
Escribe un valor de punto flotante de cuatro bytes en la secuencia actual y avanza la posición de la secuencia en cuatro bytes. |
Write(String) |
Escribe una cadena de longitud prefijada en esta secuencia en la codificación actual de BinaryWriter y hace avanzar la posición actual de la secuencia de acuerdo con la codificación utilizada y los caracteres específicos escritos en dicha secuencia. |
Write(UInt16) |
Escribe un entero sin signo de dos bytes en la secuencia actual y avanza la posición de la secuencia en dos bytes. |
Write(UInt32) |
Escribe un entero sin signo de cuatro bytes en la secuencia actual y avanza la posición de la secuencia en cuatro bytes. |
Write(UInt64) |
Escribe un entero sin signo de ocho bytes en la secuencia actual y avanza la posición de la secuencia en ocho bytes. |
Write7BitEncodedInt(Int32) |
Escribe un entero de 32 bits en formato comprimido. |
Write7BitEncodedInt64(Int64) |
Escribe un número 7 bits a la vez. |
Implementaciones de interfaz explícitas
IDisposable.Dispose() |
Libera los recursos no administrados que usa BinaryWriter y, de forma opcional, libera los recursos administrados. |
Métodos de extensión
ConfigureAwait(IAsyncDisposable, Boolean) |
Configura la forma en la que se realizan las expresiones await en las tareas devueltas desde un elemento asincrónico descartable. |
Se aplica a
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de