共用方式為


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 方法,將布爾值寫入數據流做為一個字節值。 類別包含支援不同數據類型的寫入方法。

當您建立 BinaryWriter 類別的新實例時,您會提供要寫入的數據流,並選擇性地指定編碼類型,以及處置 BinaryWriter 對象之後是否要讓數據流保持開啟。 如果您未指定編碼類型,則會使用UTF-8。

重要

此類型會實作 IDisposable 介面。 當您完成使用類型時,應該直接或間接處置它。 若要直接處置類型,請在 try/catch 區塊中呼叫其 Dispose 方法。 若要間接處置它,請使用語言建構,例如 using (C#) 或 Using (在 Visual Basic 中)。 如需詳細資訊,請參閱 介面主題中的<使用實作 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 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

DisposeAsync()

以異步方式釋放目前 BinaryWriter 類別實例所使用的所有資源。

Equals(Object)

判斷指定的物件是否等於目前的物件。

(繼承來源 Object)
Flush()

清除目前寫入器的所有緩衝區,並導致任何緩衝的數據寫入基礎裝置。

GetHashCode()

做為預設哈希函式。

(繼承來源 Object)
GetType()

取得目前實例的 Type

(繼承來源 Object)
MemberwiseClone()

建立目前 Object的淺層複本。

(繼承來源 Object)
Seek(Int32, SeekOrigin)

設定目前數據流中的位置。

ToString()

傳回表示目前 物件的字串。

(繼承來源 Object)
Write(Boolean)

將一位元組 Boolean 值寫入目前資料流,0 表示 false,1 表示 true

Write(Byte)

將未帶正負號的位元組寫入目前數據流,並將數據流位置往前移一個字節。

Write(Byte[])

將位元組陣組寫入基礎數據流。

Write(Byte[], Int32, Int32)

將位元組數位列的區域寫入目前數據流。

Write(Char)

將 Unicode 字元寫入目前數據流,並根據所使用的 Encoding 以及寫入數據流的特定字元,將數據流的目前位置往前移。

Write(Char[])

根據所使用的 Encoding 以及寫入數據流的特定字元,將字元陣列寫入目前數據流,並將數據流的目前位置往前移。

Write(Char[], Int32, Int32)

將字元陣列的區段寫入目前數據流,並根據所使用的 Encoding,以及寫入數據流的特定字元,將數據流的目前位置往前移。

Write(Decimal)

將十進位值寫入目前數據流,並將數據流位置往前移 16 個字節。

Write(Double)

將八位元組浮點值寫入目前數據流,並將數據流位置往前移八個字節。

Write(Half)

將雙位元組浮點值寫入目前數據流,並將數據流位置往前移兩個字節。

Write(Int16)

將雙位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移兩個字節。

Write(Int32)

將四位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移四個字節。

Write(Int64)

將八位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移八個字節。

Write(ReadOnlySpan<Byte>)

將位元組範圍寫入至目前的數據流。

Write(ReadOnlySpan<Char>)

將字元範圍寫入目前數據流,並根據所使用的 Encoding,以及寫入數據流的特定字元,將數據流的目前位置往前移。

Write(SByte)

將帶正負號的位元組寫入目前數據流,並將數據流位置往前移一個字節。

Write(Single)

將四位元組浮點值寫入目前數據流,並將數據流位置往前移四個字節。

Write(String)

BinaryWriter的目前編碼中,將長度前置字串寫入此數據流,並根據所使用的編碼方式,以及寫入數據流的特定字元,將數據流的目前位置往前移。

Write(UInt16)

將雙位元組無符號整數寫入目前數據流,並將數據流位置往前移兩個字節。

Write(UInt32)

將四位元組無符號整數寫入目前數據流,並將數據流位置往前移四個字節。

Write(UInt64)

將八位元組無符號整數寫入目前數據流,並將數據流位置往前移八個字節。

Write7BitEncodedInt(Int32)

以壓縮格式寫入32位整數。

Write7BitEncodedInt64(Int64)

一次寫出數位7位。

明確介面實作

IDisposable.Dispose()

釋放 BinaryWriter 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。

擴充方法

ConfigureAwait(IAsyncDisposable, Boolean)

設定如何執行從異步可處置專案傳回的工作等候。

適用於

另請參閱