BinaryReader Класс
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Считывает примитивные типы данных как двоичные значения в заданной кодировке.
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
- Наследование
-
BinaryReader
- Атрибуты
- Реализации
В следующем примере кода показано, как сохранять и извлекать параметры приложения в файле .
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
Класс BinaryReader предоставляет методы, упрощающие чтение примитивных типов данных из потока. Например, метод можно использовать для ReadBoolean считывания следующего байта в виде логического значения и продвижения текущей позиции в потоке на один байт. Класс включает методы чтения, поддерживающие различные типы данных.
При создании нового экземпляра класса вы предоставляете BinaryReader поток для чтения и при необходимости указываете тип кодирования и следует ли оставить поток открытым после удаления BinaryReader объекта. Если тип кодирования не указан, используется UTF-8.
Важно!
Этот тип реализует интерфейс IDisposable. По окончании использования выдаленную ему память следует прямо или косвенно освободить. Чтобы сделать это прямо, вызовите его метод Dispose в блоке try
/catch
. Чтобы сделать это косвенно, используйте языковые конструкции, такие как using
(в C#) или Using
(в Visual Basic). Дополнительные сведения см. в разделе "Использование объекта, реализующего IDisposable" в статье об интерфейсе IDisposable.
Binary |
Инициализирует новый экземпляр класса BinaryReader на основании указанного потока с использованием кодировки UTF-8. |
Binary |
Инициализирует новый экземпляр класса BinaryReader на основе указанного потока и кодировки символов. |
Binary |
Инициализирует новый экземпляр класса BinaryReader на основании указанного потока и кодировки символов, а также при необходимости оставляет поток открытым. |
Base |
Предоставляет доступ к базовому потоку объекта BinaryReader. |
Close() |
Закрывает текущий поток чтения и связанный с ним базовый поток. |
Dispose() |
Освобождает все ресурсы, используемые текущим экземпляром класса BinaryReader. |
Dispose(Boolean) |
Освобождает неуправляемые ресурсы, используемые классом BinaryReader (при необходимости освобождает и управляемые ресурсы). |
Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
Fill |
Заполняет внутренний буфер указанным количеством байтов, которые были cчитаны из потока. |
Get |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
Peek |
Возвращает следующий доступный для чтения символ, не перемещая позицию байта или символа вперед. |
Read() |
Выполняет чтение знаков из базового потока и перемещает текущую позицию в потоке вперед в соответствии с используемым значением |
Read(Byte[], Int32, Int32) |
Считывает указанное количество байтов из потока, начиная с заданной точки в массиве байтов. |
Read(Char[], Int32, Int32) |
Считывает указанное количество символов из потока, начиная с заданной точки в массиве символов. |
Read(Span<Byte>) |
Считывает последовательность байтов из текущего потока и перемещает позицию внутри потока на число считанных байтов. |
Read(Span<Char>) |
Считывает из текущего потока то же количество символов, что и в длине предоставленного буфера, записывает их в предоставленный буфер и перемещает текущую позицию в соответствии с используемой |
Read7Bit |
Считывает 32-разрядное целое число в сжатом формате. |
Read7Bit |
Считывает число блоками по семь битов. |
Read |
Считывает значение |
Read |
Считывает из текущего потока следующий байт и перемещает текущую позицию в потоке на один байт вперед. |
Read |
Считывает указанное количество байтов из текущего потока в массив байтов и перемещает текущую позицию на это количество байтов. |
Read |
Считывает следующий знак из текущего потока и изменяет текущую позицию в потоке в соответствии с используемым значением |
Read |
Считывает указанное количество символов из текущего потока, возвращает данные в массив символов и перемещает текущую позицию в соответствии с используемой |
Read |
Считывает десятичное значение из текущего потока и перемещает текущую позицию в потоке на шестнадцать байтов вперед. |
Read |
Считывает число с плавающей запятой длиной 8 байт из текущего потока и перемещает текущую позицию в потоке на восемь байт вперед. |
Read |
Считывает 2-байтовое значение с плавающей запятой из текущего потока и перемещает текущую позицию потока на два байта. |
Read |
Считывает целое число со знаком длиной 2 байта из текущего потока и перемещает текущую позицию в потоке на два байта вперед. |
Read |
Считывает целое число со знаком длиной 4 байта из текущего потока и перемещает текущую позицию в потоке на четыре байта вперед. |
Read |
Считывает целое число со знаком длиной 8 байта из текущего потока и перемещает текущую позицию в потоке на восемь байтов вперед. |
Read |
Считывает из текущего потока байт со знаком и перемещает текущую позицию в потоке на один байт вперед. |
Read |
Считывает число с плавающей запятой длиной 4 байта из текущего потока и перемещает текущую позицию в потоке на четыре байта вперед. |
Read |
Считывает строку из текущего потока. Строка предваряется значением длины строки, которое закодировано как целое число блоками по семь битов. |
Read |
Считывает целое число без знака длиной 2 байта в формате с прямым порядком байтов из текущего потока и перемещает текущую позицию в потоке на два байта вперед. |
Read |
Считывает целое число без знака длиной 4 байта из текущего потока и перемещает текущую позицию в потоке на четыре байта вперед. |
Read |
Считывает целое число без знака длиной 8 байт из текущего потока и перемещает текущую позицию в потоке на восемь байтов вперед. |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
IDisposable. |
Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода. Освобождает , BaseStream если не настроено иное с помощью BinaryReader(Stream, Encoding, Boolean). |
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1 |
UWP | 10.0 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: