Compartir a través de


BinaryWriter Clase

Definición

Escribe tipos primitivos en 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 clase BinaryWriter proporciona métodos que simplifican la escritura de tipos de datos primitivos en una secuencia. Por ejemplo, puede usar el método Write para escribir un valor booleano en la secuencia como un valor de un byte. La clase incluye métodos de escritura que admiten diferentes tipos de datos.

Al crear una nueva instancia de la clase BinaryWriter, se proporciona la secuencia en la que escribir y, opcionalmente, se especifica el tipo de codificación y si se deja abierta la secuencia después de eliminar el objeto BinaryWriter. Si no especifica un tipo de codificación, se usa UTF-8.

Importante

Este tipo implementa la interfaz IDisposable. Cuando haya terminado de usar el tipo, debe eliminarlo directa o indirectamente. Para eliminar el tipo directamente, llame a su método Dispose en un bloque try/catch. Para eliminarlo indirectamente, use una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, vea la sección "Using an Object that Implements IDisposable" (Usar un objeto que implementa IDisposable) en el tema IDisposable interfaz.

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 en función de la secuencia especificada y usando la 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 en función de la secuencia y la codificación de caracteres especificadas y, opcionalmente, deja abierta la secuencia.

Campos

Null

Especifica un BinaryWriter sin memoria auxiliar.

OutStream

Contiene la secuencia subyacente.

Propiedades

BaseStream

Obtiene la secuencia subyacente del 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 usados por el BinaryWriter y, opcionalmente, libera los recursos administrados.

DisposeAsync()

Libera de forma asincrónica todos los recursos utilizados por la instancia actual de la clase BinaryWriter.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
Flush()

Borra todos los búferes del escritor actual y hace que los datos almacenados en búfer se escriban en el dispositivo subyacente.

GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Seek(Int32, SeekOrigin)

Establece la posición dentro de la secuencia actual.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Write(Boolean)

Escribe un valor de Boolean de un byte en la secuencia actual, con 0 que representa false y 1 que representa true.

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 Encoding usado y los caracteres específicos que se escriben en la secuencia.

Write(Char[])

Escribe una matriz de caracteres en la secuencia actual y avanza la posición actual de la secuencia de acuerdo con el Encoding usado y los caracteres específicos que se escriben en la secuencia.

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 Encoding usado y quizás los caracteres específicos que se escriben en la secuencia.

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 Encoding usado y quizás los caracteres específicos que se escriben en la secuencia.

Write(SByte)

Escribe un byte firmado 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 con prefijo de longitud en esta secuencia en la codificación actual de la BinaryWritery avanza la posición actual de la secuencia de acuerdo con la codificación usada y los caracteres específicos que se escriben en la secuencia.

Write(UInt16)

Escribe un entero de dos bytes sin signo en la secuencia actual y avanza la posición de la secuencia en dos bytes.

Write(UInt32)

Escribe un entero de cuatro bytes sin signo en la secuencia actual y avanza la posición de la secuencia en cuatro bytes.

Write(UInt64)

Escribe un entero de ocho bytes sin signo en la secuencia actual y avanza la posición de la secuencia en ocho bytes.

Write7BitEncodedInt(Int32)

Escribe un entero de 32 bits en un formato comprimido.

Write7BitEncodedInt64(Int64)

Escribe un número de 7 bits a la vez.

Implementaciones de interfaz explícitas

IDisposable.Dispose()

Libera los recursos no administrados usados por el BinaryWriter y, opcionalmente, libera los recursos administrados.

Métodos de extensión

ConfigureAwait(IAsyncDisposable, Boolean)

Configura cómo se realizarán las esperas en las tareas devueltas desde un descartable asincrónico.

Se aplica a

Consulte también