BinaryWriter クラス

定義

プリミティブ型をバイナリでストリームに書き込みます。特定のエンコーディングの文字列の書き込みをサポートします。

public ref class BinaryWriter : IDisposable
public ref class BinaryWriter : IAsyncDisposable, IDisposable
public class BinaryWriter : IDisposable
public class BinaryWriter : IAsyncDisposable, IDisposable
[System.Serializable]
public class BinaryWriter : IDisposable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class BinaryWriter : IDisposable
type BinaryWriter = class
    interface IDisposable
type BinaryWriter = class
    interface IAsyncDisposable
    interface IDisposable
[<System.Serializable>]
type BinaryWriter = class
    interface IDisposable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type BinaryWriter = class
    interface IDisposable
Public Class BinaryWriter
Implements IDisposable
Public Class BinaryWriter
Implements IAsyncDisposable, IDisposable
継承
BinaryWriter
属性
実装

次のコード例は、ファイルにアプリケーション設定を格納および取得する方法を示しています。

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

注釈

クラスには BinaryWriter 、ストリームへのプリミティブ データ型の書き込みを簡略化するメソッドが用意されています。 たとえば、 メソッドを Write 使用して、ブール値を 1 バイト値としてストリームに書き込むことができます。 クラスには、さまざまなデータ型をサポートする書き込みメソッドが含まれています。

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

重要

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

派生クラスは、このクラスのメソッドをオーバーライドして、一意の文字エンコーディングを提供できます。

コンストラクター

BinaryWriter()

ストリームへの書き込みを行う BinaryWriter クラスの新しいインスタンスを初期化します。

BinaryWriter(Stream)

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

BinaryWriter(Stream, Encoding)

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

BinaryWriter(Stream, Encoding, Boolean)

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

フィールド

Null

バッキング ストアを持たない BinaryWriter を指定します。

OutStream

基になるストリームを保持します。

プロパティ

BaseStream

BinaryWriter の基になるストリームを取得します。

メソッド

Close()

現在の BinaryWriter、および基になるストリームを閉じます。

Dispose()

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

Dispose(Boolean)

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

DisposeAsync()

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

Equals(Object)

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

(継承元 Object)
Flush()

現在のライターのすべてのバッファーをクリアし、バッファー内のデータを基になるデバイスに書き込みます。

GetHashCode()

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

(継承元 Object)
GetType()

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

(継承元 Object)
MemberwiseClone()

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

(継承元 Object)
Seek(Int32, SeekOrigin)

現在のストリーム内の位置を設定します。

ToString()

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

(継承元 Object)
Write(Boolean)

現在のストリームに 1 バイト Boolean 値を書き込みます。0 は false を表し、1 は true を表します。

Write(Byte)

現在のストリームに符号なしバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。

Write(Byte[])

基になるストリームにバイト配列を書き込みます。

Write(Byte[], Int32, Int32)

現在のストリームにバイト配列の領域を書き込みます。

Write(Char)

現在のストリームに Unicode 文字を書き込み、使用した Encoding とストリームに書き込んだ特定の文字に従ってストリームの現在位置を進めます。

Write(Char[])

現在のストリームに文字配列を書き込み、使用した Encoding とストリームに書き込んだ特定の文字に従ってストリームの現在位置を進めます。

Write(Char[], Int32, Int32)

現在のストリームに文字配列セクションを書き込み、使用した Encoding とストリームに書き込んだ特定の文字に従ってストリームの現在位置を進めます。

Write(Decimal)

現在のストリームに 10 進値を書き込み、ストリームの位置を 16 バイトだけ進めます。

Write(Double)

現在のストリームに 8 バイト浮動小数点値を書き込み、ストリームの位置を 8 バイトだけ進めます。

Write(Half)

現在のストリームに 2 バイトの浮動小数点値を書き込み、ストリーム位置を 2 バイト進めます。

Write(Int16)

現在のストリームに 2 バイト符号付き整数を書き込み、ストリームの位置を 2 バイトだけ進めます。

Write(Int32)

現在のストリームに 4 バイト符号付き整数を書き込み、ストリームの位置を 4 バイトだけ進めます。

Write(Int64)

現在のストリームに 8 バイト符号付き整数を書き込み、ストリームの位置を 8 バイトだけ進めます。

Write(ReadOnlySpan<Byte>)

現在のストリームにバイトのスパンを書き込みます。

Write(ReadOnlySpan<Char>)

現在のストリームに文字のスパンを書き込み、使用した Encoding とストリームに書き込んだ特定の文字に従ってストリームの現在位置を進めます。

Write(SByte)

現在のストリームに符号付きバイトを書き込み、ストリームの位置を 1 バイトだけ進めます。

Write(Single)

現在のストリームに 4 バイト浮動小数点値を書き込み、ストリームの位置を 4 バイトだけ進めます。

Write(String)

長さを示すプレフィックスを付けた文字列を、BinaryWriter の現在のエンコーディングでこのストリームに書き込み、使用したエンコーディングとストリームに書き込んだ特定の文字に従ってストリームの現在位置を進めます。

Write(UInt16)

現在のストリームに 2 バイト符号なし整数を書き込み、ストリームの位置を 2 バイトだけ進めます。

Write(UInt32)

現在のストリームに 4 バイト符号なし整数を書き込み、ストリームの位置を 4 バイトだけ進めます。

Write(UInt64)

現在のストリームに 8 バイト符号なし整数を書き込み、ストリームの位置を 8 バイトだけ進めます。

Write7BitEncodedInt(Int32)

32 ビット整数を圧縮形式で書き込みます。

Write7BitEncodedInt64(Int64)

一度に数値の 7 ビットが書き込まれます。

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

IDisposable.Dispose()

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

拡張メソッド

ConfigureAwait(IAsyncDisposable, Boolean)

非同期の破棄可能から返されるタスク上での待機がどのように実行されるかを構成します。

適用対象

こちらもご覧ください