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 バイトをブール値として読み取り、ストリーム内の現在の位置を 1 バイト進めることができます。 このクラスには、さまざまなデータ型をサポートする読み取りメソッドが含まれています。

クラスの BinaryReader 新しいインスタンスを作成するときに、読み取るストリームを指定し、必要に応じてエンコードの種類と、オブジェクトを破棄した後でストリームを BinaryReader 開いたままにするかどうかを指定します。 エンコードの種類を指定しない場合は、UTF-8 が使用されます。

重要

この型は IDisposable インターフェイスを実装します。 型の使用が完了したら、直接的または間接的に型を破棄する必要があります。 直接的に型を破棄するには、try/catch ブロック内で Dispose メソッドを呼び出します。 間接的に型を破棄するには、using (C# の場合) または Using (Visual Basic 言語) などの言語構成要素を使用します。 詳細については、IDisposable インターフェイスに関するトピック内の「IDisposable を実装するオブジェクトの使用」セクションを参照してください。

コンストラクター

BinaryReader(Stream)

指定したストリームに基づき、UTF-8 エンコーディングを使用する BinaryReader クラスの新しいインスタンスを初期化します。

BinaryReader(Stream, Encoding)

指定したストリームと文字エンコーディングに基づいて、BinaryReader クラスの新しいインスタンスを初期化します。

BinaryReader(Stream, Encoding, Boolean)

指定したストリームと文字エンコーディングに基づいて BinaryReader クラスの新しいインスタンスを初期化し、必要に応じて、ストリームを開いたままにします。

プロパティ

BaseStream

BinaryReader の基になるストリームへのアクセスを公開します。

メソッド

Close()

現在のリーダーと基になるストリームをクローズします。

Dispose()

BinaryReader クラスの現在のインスタンスによって使用されているすべてのリソースを解放します。

Dispose(Boolean)

BinaryReader クラスによって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
FillBuffer(Int32)

指定したバイト数分だけストリームから読み取ったバイトを内部バッファーに格納します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
PeekChar()

読み取り可能な次の文字を返します。バイトの位置または文字の位置は変化しません。

Read()

基になるストリームから文字を読み取り、使用した Encoding とストリームから読み取った特定の文字に従ってストリームの現在位置を進めます。

Read(Byte[], Int32, Int32)

バイト配列内の指定された位置を開始点として、ストリームから指定されたバイト数を読み取ります。

Read(Char[], Int32, Int32)

文字配列内の指定された位置を開始点として、ストリームから指定された文字数を読み取ります。

Read(Span<Byte>)

現在のストリームからバイト シーケンスを読み取り、読み取ったバイト数だけストリーム内の位置を進めます。

Read(Span<Char>)

現在のストリームから、指定されたバッファーの長さと同じ文字数を読み取り、指定されたバッファーにそれらを書き込んでから、使用した Encoding とストリームから読み取った特定の文字に従って現在位置を進めます。

Read7BitEncodedInt()

32 ビット整数を圧縮形式で読み取ります。

Read7BitEncodedInt64()

一度に数値の 7 ビットが読み取られます。

ReadBoolean()

現在のストリームから Boolean 値を読み取り、ストリームの現在位置を 1 バイトだけ進めます。

ReadByte()

現在のストリームから次のバイトを読み取り、ストリームの現在位置を 1 バイトだけ進めます。

ReadBytes(Int32)

現在のストリームから指定されたバイト数をバイト配列に読み取り、そのバイト数だけストリーム内の現在位置を進めます。

ReadChar()

現在のストリームの次の文字を読み取り、使用した Encoding とストリームから読み取った特定の文字に従ってストリームの現在位置を進めます。

ReadChars(Int32)

現在のストリームから指定された文字数を読み取り、そのデータを文字配列として返します。また、使用した Encoding とストリームから読み取った特定の文字に従って現在位置を進めます。

ReadDecimal()

現在のストリームから 10 進数値を読み取り、ストリームの現在位置を 16 バイトだけ進めます。

ReadDouble()

現在のストリームから 8 バイト浮動小数点値を読み取り、ストリームの現在位置を 8 バイトだけ進めます。

ReadHalf()

現在のストリームから 2 バイトの浮動小数点値を読み取り、ストリームの現在位置を 2 バイト進めます。

ReadInt16()

現在のストリームから 2 バイト符号付き整数を読み取り、ストリームの現在位置を 2 バイトだけ進めます。

ReadInt32()

現在のストリームから 4 バイト符号付き整数を読み取り、ストリームの現在位置を 4 バイトだけ進めます。

ReadInt64()

現在のストリームから 8 バイト符号付き整数を読み取り、ストリームの現在位置を 8 バイトだけ進めます。

ReadSByte()

現在のストリームから符号付きバイトを読み取り、ストリームの現在位置を 1 バイトだけ進めます。

ReadSingle()

現在のストリームから 4 バイト浮動小数点値を読み取り、ストリームの現在位置を 4 バイトだけ進めます。

ReadString()

現在のストリームから 1 つの文字列を読み取ります。 ストリームの文字列は、7 ビットごとにエンコードされた文字列の長さが先頭に付加されています。

ReadUInt16()

リトル エンディアン エンコーディングを使用して現在のストリームから 2 バイト符号なし整数を読み取り、ストリームの位置を 2 バイトだけ進めます。

ReadUInt32()

現在のストリームから 4 バイト符号なし整数を読み取り、ストリームの位置を 4 バイトだけ進めます。

ReadUInt64()

現在のストリームから 8 バイト符号なし整数を読み取り、ストリームの位置を 8 バイトだけ進めます。

ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

IDisposable.Dispose()

この API は製品インフラストラクチャをサポートします。コードから直接使用するものではありません。

別の方法で BaseStream 構成されていない限り、 BinaryReader(Stream, Encoding, Boolean).

適用対象

こちらもご覧ください