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 が使用されます。

Important

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

コンストラクター

名前 説明
BinaryReader(Stream, Encoding, Boolean)

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

BinaryReader(Stream, Encoding)

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

BinaryReader(Stream)

指定したストリームに基づいて UTF-8 エンコードを使用して、 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 ビット整数で読み取ります。

ReadBoolean()

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

ReadByte()

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

ReadBytes(Int32)

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

ReadChar()

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

ReadChars(Int32)

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

ReadDecimal()

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

ReadDouble()

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

ReadInt16()

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

ReadInt32()

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

ReadInt64()

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

ReadSByte()

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

ReadSingle()

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

ReadString()

現在のストリームから文字列を読み取ります。 文字列の先頭には長さが付き、一度に 7 ビットの整数としてエンコードされます。

ReadUInt16()

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

ReadUInt32()

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

ReadUInt64()

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

ToString()

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

(継承元 Object)

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

名前 説明
IDisposable.Dispose()

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

BinaryReader(Stream, Encoding, Boolean)によって特に構成されていない限り、BaseStreamを解放します。

適用対象

こちらもご覧ください