BinaryWriter BinaryWriter BinaryWriter BinaryWriter Class

Определение

Записывает примитивные типы в двоичный поток и поддерживает запись строк в заданной кодировке. Writes primitive types in binary to a stream and supports writing strings in a specific encoding.

public ref class BinaryWriter : IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
[Serializable]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Наследование
BinaryWriterBinaryWriterBinaryWriterBinaryWriter
Атрибуты
ComVisibleAttribute SerializableAttribute
Реализации

Примеры

В следующем примере кода показано, как сохранять и извлекать параметры приложения в файле.The following code example demonstrates how to store and retrieve application settings in a file.

using System;
using System.IO;

class ConsoleApplication
{
    const string fileName = "AppSettings.dat";

    static void Main()
    {
        WriteDefaultValues();
        DisplayValues();
    }

    public static void WriteDefaultValues()
    {
        using (BinaryWriter writer = new BinaryWriter(File.Open(fileName, FileMode.Create)))
        {
            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 (BinaryReader reader = new BinaryReader(File.Open(fileName, FileMode.Open)))
            {
                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);
        }
    }
}
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

Комментарии

BinaryWriter Класс предоставляет методы, которые упрощают создание примитивные типы данных в поток.The BinaryWriter class provides methods that simplify writing primitive data types to a stream. Например, можно использовать Write метод для записи в поток как однобайтовое значение логическое значение.For example, you can use the Write method to write a Boolean value to the stream as a one-byte value. Этот класс включает методы записи, которые поддерживают различные типы данных.The class includes write methods that support different data types.

При создании нового экземпляра BinaryWriter класса, нужно предоставить поток для записи и при необходимости укажите тип кодировки и следует ли оставить поток откройте после удаления BinaryWriter объекта.When you create a new instance of the BinaryWriter class, you provide the stream to write to, and optionally specify the type of encoding and whether to leave the stream open after disposing the BinaryWriter object. Если вы не укажете тип кодировки, используется UTF-8.If you do not specify an encoding type, UTF-8 is used.

Важно!

Этот тип реализует IDisposable интерфейс.This type implements the IDisposable interface. Когда вы закончите, используя тип, следует освободить его прямо или косвенно.When you have finished using the type, you should dispose of it either directly or indirectly. Чтобы удалить тип напрямую, вызовите его Dispose метод в try / catch блока.To dispose of the type directly, call its Dispose method in a try/catch block. Чтобы избавиться от его косвенно, используйте языковой конструкции, такие как using (в C#) или Using (в Visual Basic).To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). Дополнительные сведения см. в разделе «С помощью объекта, реализует IDisposable» IDisposable разделу интерфейса.For more information, see the "Using an Object that Implements IDisposable" section in the IDisposable interface topic.

Производный класс может переопределить методы этого класса для предоставления конкретной кодировки символов.A derived class can override the methods of this class to give unique character encodings.

Конструкторы

BinaryWriter() BinaryWriter() BinaryWriter() BinaryWriter()

Инициализирует новый экземпляр класса BinaryWriter, который осуществляет запись в поток. Initializes a new instance of the BinaryWriter class that writes to a stream.

BinaryWriter(Stream) BinaryWriter(Stream) BinaryWriter(Stream) BinaryWriter(Stream)

Инициализирует новый экземпляр класса BinaryWriter на основании указанного потока с использованием кодировки UTF-8. Initializes a new instance of the BinaryWriter class based on the specified stream and using UTF-8 encoding.

BinaryWriter(Stream, Encoding) BinaryWriter(Stream, Encoding) BinaryWriter(Stream, Encoding) BinaryWriter(Stream, Encoding)

Инициализирует новый экземпляр класса BinaryWriter на основе указанного потока и кодировки символов. Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding.

BinaryWriter(Stream, Encoding, Boolean) BinaryWriter(Stream, Encoding, Boolean) BinaryWriter(Stream, Encoding, Boolean) BinaryWriter(Stream, Encoding, Boolean)

Инициализирует новый экземпляр класса BinaryWriter на основе указанного потока и кодировки символов, а также при необходимости оставляет поток открытым. Initializes a new instance of the BinaryWriter class based on the specified stream and character encoding, and optionally leaves the stream open.

Поля

Null Null Null Null

Указывает BinaryWriter без резервного хранилища. Specifies a BinaryWriter with no backing store.

OutStream OutStream OutStream OutStream

Содержит базовый поток. Holds the underlying stream.

Свойства

BaseStream BaseStream BaseStream BaseStream

Возвращает базовый поток BinaryWriter. Gets the underlying stream of the BinaryWriter.

Методы

Close() Close() Close() Close()

Закрывает текущий BinaryWriter и базовый поток. Closes the current BinaryWriter and the underlying stream.

Dispose() Dispose() Dispose() Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса BinaryWriter. Releases all resources used by the current instance of the BinaryWriter class.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом BinaryWriter, а при необходимости освобождает также управляемые ресурсы. Releases the unmanaged resources used by the BinaryWriter and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Определяет, равен ли заданный объект текущему объекту. Determines whether the specified object is equal to the current object.

(Inherited from Object)
Flush() Flush() Flush() Flush()

Очищает все буферы текущего модуля записи и вызывает немедленную запись всех буферизованных данных на базовое устройство. Clears all buffers for the current writer and causes any buffered data to be written to the underlying device.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Служит хэш-функцией по умолчанию. Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра. Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object. Creates a shallow copy of the current Object.

(Inherited from Object)
Seek(Int32, SeekOrigin) Seek(Int32, SeekOrigin) Seek(Int32, SeekOrigin) Seek(Int32, SeekOrigin)

Задает позицию в текущем потоке. Sets the position within the current stream.

ToString() ToString() ToString() ToString()

Возвращает строку, представляющую текущий объект. Returns a string that represents the current object.

(Inherited from Object)
Write(Boolean) Write(Boolean) Write(Boolean) Write(Boolean)

Записывает значение типа Boolean длиной один байт в текущий поток, при этом 0 соответствует значению false, а 1 — значению true. Writes a one-byte Boolean value to the current stream, with 0 representing false and 1 representing true.

Write(Byte) Write(Byte) Write(Byte) Write(Byte)

Выполняет запись байта без знака в текущий поток и перемещает позицию в потоке на один байт вперед. Writes an unsigned byte to the current stream and advances the stream position by one byte.

Write(Byte[]) Write(Byte[]) Write(Byte[]) Write(Byte[])

Записывает массив байтов в базовый поток. Writes a byte array to the underlying stream.

Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32) Write(Byte[], Int32, Int32)

Выполняет запись части массива байтов в текущий поток. Writes a region of a byte array to the current stream.

Write(Char) Write(Char) Write(Char) Write(Char)

Выполняет запись символа Юникод в текущий поток и перемещает текущую позицию в потоке вперед в соответствии с используемой Encoding и количеством записанных в поток символов. Writes a Unicode character to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(Char[]) Write(Char[]) Write(Char[]) Write(Char[])

Выполняет запись массива символов в текущий поток и перемещает текущую позицию в потоке в соответствии с используемой Encoding и количеством записанных в поток символов. Writes a character array to the current stream and advances the current position of the stream in accordance with the Encoding used and the specific characters being written to the stream.

Write(Char[], Int32, Int32) Write(Char[], Int32, Int32) Write(Char[], Int32, Int32) Write(Char[], Int32, Int32)

Выполняет запись части массива символов в текущий поток и изменяет текущую позицию в потоке в соответствии с используемой Encoding и, возможно, количеством символов, записанных в поток. Writes a section of a character array to the current stream, and advances the current position of the stream in accordance with the Encoding used and perhaps the specific characters being written to the stream.

Write(Decimal) Write(Decimal) Write(Decimal) Write(Decimal)

Записывает десятичное число в текущий поток и перемещает позицию в потоке на шестнадцать байтов. Writes a decimal value to the current stream and advances the stream position by sixteen bytes.

Write(Double) Write(Double) Write(Double) Write(Double)

Записывает число с плавающей запятой размером 8 байт в текущий поток и перемещает позицию в потоке вперед на восемь байт. Writes an eight-byte floating-point value to the current stream and advances the stream position by eight bytes.

Write(Int16) Write(Int16) Write(Int16) Write(Int16)

Записывает целое число со знаком размером 2 байта в текущий поток и перемещает позицию в потоке вперед на два байта. Writes a two-byte signed integer to the current stream and advances the stream position by two bytes.

Write(Int32) Write(Int32) Write(Int32) Write(Int32)

Записывает четырехбайтовое целое число со знаком в текущий поток и перемещает позицию в потоке на четыре байта вперед. Writes a four-byte signed integer to the current stream and advances the stream position by four bytes.

Write(Int64) Write(Int64) Write(Int64) Write(Int64)

Записывает целое число со знаком размером 8 байт в текущий поток и перемещает позицию в потоке вперед на восемь байт. Writes an eight-byte signed integer to the current stream and advances the stream position by eight bytes.

Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>) Write(ReadOnlySpan<Byte>)
Write(ReadOnlySpan<Char>) Write(ReadOnlySpan<Char>) Write(ReadOnlySpan<Char>) Write(ReadOnlySpan<Char>)
Write(SByte) Write(SByte) Write(SByte) Write(SByte)

Записывает байт со знаком в текущий поток и перемещает позицию в потоке вперед на один байт. Writes a signed byte to the current stream and advances the stream position by one byte.

Write(Single) Write(Single) Write(Single) Write(Single)

Записывает число с плавающей запятой длиной 4 байта в текущий поток и перемещает позицию в потоке вперед на четыре байта. Writes a four-byte floating-point value to the current stream and advances the stream position by four bytes.

Write(String) Write(String) Write(String) Write(String)

Записывает в текущий поток строку, предваряемую ее длиной, используя текущую кодировку BinaryWriter, и перемещает позицию в потоке вперед в соответствии с используемой кодировкой и количеством записанных в поток символов. Writes a length-prefixed string to this stream in the current encoding of the BinaryWriter, and advances the current position of the stream in accordance with the encoding used and the specific characters being written to the stream.

Write(UInt16) Write(UInt16) Write(UInt16) Write(UInt16)

Записывает целое число без знака размером 2 байта в текущий поток и перемещает позицию в потоке вперед на два байта. Writes a two-byte unsigned integer to the current stream and advances the stream position by two bytes.

Write(UInt32) Write(UInt32) Write(UInt32) Write(UInt32)

Записывает целое число без знака размером 4 байта в текущий поток и перемещает позицию в потоке вперед на четыре байта. Writes a four-byte unsigned integer to the current stream and advances the stream position by four bytes.

Write(UInt64) Write(UInt64) Write(UInt64) Write(UInt64)

Записывает целое число без знака размером 8 байт в текущий поток и перемещает позицию в потоке вперед на восемь байт. Writes an eight-byte unsigned integer to the current stream and advances the stream position by eight bytes.

Write7BitEncodedInt(Int32) Write7BitEncodedInt(Int32) Write7BitEncodedInt(Int32) Write7BitEncodedInt(Int32)

Записывает 32-разрядное целое число в сжатом формате. Writes a 32-bit integer in a compressed format.

Явные реализации интерфейса

IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose() IDisposable.Dispose()

Применяется к

См. также