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)

非同期破棄から返されるタスクの待機を実行する方法を構成します。

適用対象

こちらもご覧ください