BinaryReader Класс

Определение

Считывает примитивные типы данных как двоичные значения в заданной кодировке.Reads primitive data types as binary values in a specific encoding.

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

Примеры

В следующем примере кода показано, как сохранять и извлекать параметры приложения в файле.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

Комментарии

Класс BinaryReader предоставляет методы, упрощающие чтение примитивных типов данных из потока.The BinaryReader class provides methods that simplify reading primitive data types from a stream. Например, можно использовать метод ReadBoolean для считывания следующего байта в качестве логического значения и перехода текущей позицией в потоке на один байт.For example, you can use the ReadBoolean method to read the next byte as a Boolean value and advance the current position in the stream by one byte. Класс включает методы чтения, поддерживающие различные типы данных.The class includes read methods that support different data types.

При создании нового экземпляра класса BinaryReader необходимо предоставить поток для чтения и при необходимости указать тип кодировки, а также оставить поток открытым после удаления объекта BinaryReader.When you create a new instance of the BinaryReader class, you provide the stream to read from, and optionally specify the type of encoding and whether to leave the stream open after disposing the BinaryReader 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.

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

BinaryReader(Stream)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream, Encoding, Boolean)

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

Свойства

BaseStream

Предоставляет доступ к базовому потоку объекта BinaryReader.Exposes access to the underlying stream of the BinaryReader.

Методы

Close()

Закрывает текущий поток чтения и связанный с ним базовый поток.Closes the current reader and the underlying stream.

Dispose()

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

Dispose(Boolean)

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

Equals(Object)

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

(Унаследовано от Object)
FillBuffer(Int32)

Заполняет внутренний буфер указанным количеством байтов, которые были cчитаны из потока.Fills the internal buffer with the specified number of bytes read from the stream.

GetHashCode()

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

(Унаследовано от Object)
GetType()

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

(Унаследовано от Object)
MemberwiseClone()

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

(Унаследовано от Object)
PeekChar()

Возвращает следующий доступный для чтения символ, не перемещая позицию байта или символа вперед.Returns the next available character and does not advance the byte or character position.

Read()

Выполняет чтение знаков из базового потока и перемещает текущую позицию в потоке вперед в соответствии с используемым значением Encoding и конкретным знаком в потоке, чтение которого выполняется в настоящий момент.Reads characters from the underlying stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.

Read(Byte[], Int32, Int32)

Считывает указанное количество байтов из потока, начиная с заданной точки в массиве байтов.Reads the specified number of bytes from the stream, starting from a specified point in the byte array.

Read(Char[], Int32, Int32)

Считывает указанное количество символов из потока, начиная с заданной точки в массиве символов.Reads the specified number of characters from the stream, starting from a specified point in the character array.

Read(Span<Byte>)

Считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов.Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read.

Read(Span<Char>)

Считывает из текущего потока то же количество символов, что и в длине предоставленного буфера, записывает их в предоставленный буфер и перемещает текущую позицию в соответствии с используемой Encoding и конкретным символом, считываемым из потока.Reads, from the current stream, the same number of characters as the length of the provided buffer, writes them in the provided buffer, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.

Read7BitEncodedInt()

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

ReadBoolean()

Считывает значение Boolean из текущего потока и перемещает текущую позицию в потоке на один байт вперед.Reads a Boolean value from the current stream and advances the current position of the stream by one byte.

ReadByte()

Считывает из текущего потока следующий байт и перемещает текущую позицию в потоке на один байт вперед.Reads the next byte from the current stream and advances the current position of the stream by one byte.

ReadBytes(Int32)

Считывает указанное количество байтов из текущего потока в массив байтов и перемещает текущую позицию на это количество байтов.Reads the specified number of bytes from the current stream into a byte array and advances the current position by that number of bytes.

ReadChar()

Считывает следующий знак из текущего потока и изменяет текущую позицию в потоке в соответствии с используемым значением Encoding и конкретным знаком в потоке, чтение которого выполняется в настоящий момент.Reads the next character from the current stream and advances the current position of the stream in accordance with the Encoding used and the specific character being read from the stream.

ReadChars(Int32)

Считывает указанное количество символов из текущего потока, возвращает данные в массив символов и перемещает текущую позицию в соответствии с используемой Encoding и определенным символом, считываемым из потока.Reads the specified number of characters from the current stream, returns the data in a character array, and advances the current position in accordance with the Encoding used and the specific character being read from the stream.

ReadDecimal()

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

ReadDouble()

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

ReadInt16()

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

ReadInt32()

Считывает целое число со знаком длиной 4 байта из текущего потока и перемещает текущую позицию в потоке на четыре байта вперед.Reads a 4-byte signed integer from the current stream and advances the current position of the stream by four bytes.

ReadInt64()

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

ReadSByte()

Считывает из текущего потока байт со знаком и перемещает текущую позицию в потоке на один байт вперед.Reads a signed byte from this stream and advances the current position of the stream by one byte.

ReadSingle()

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

ReadString()

Считывает строку из текущего потока.Reads a string from the current stream. Строка предваряется значением длины строки, которое закодировано как целое число блоками по семь битов.The string is prefixed with the length, encoded as an integer seven bits at a time.

ReadUInt16()

Считывает целое число без знака длиной 2 байта в формате с прямым порядком байтов из текущего потока и перемещает текущую позицию в потоке на два байта вперед.Reads a 2-byte unsigned integer from the current stream using little-endian encoding and advances the position of the stream by two bytes.

ReadUInt32()

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

ReadUInt64()

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

ToString()

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

(Унаследовано от Object)

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

IDisposable.Dispose()

Освобождает все ресурсы, занятые модулем BinaryReader.Releases all resources used by the BinaryReader.

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

Дополнительно