BinaryWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以二進位方式將基本類型寫入資料流,並支援以特定編碼方式寫入字串。
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 介面文章中的<使用實作 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) |
寫入一位元組的 |
Write(Byte) |
將不帶正負號 (Unsigned) 位元組寫入目前資料流,並將資料流位置前移一個位元組。 |
Write(Byte[]) |
將位元組陣列寫入基礎資料流。 |
Write(Byte[], Int32, Int32) |
將一個區域的位元組陣列寫入目前資料流。 |
Write(Char) |
將 Unicode 字元寫入至目前資料流,並按照所使用的 |
Write(Char[]) |
將字元陣列寫入至目前資料流,並按照所使用的 |
Write(Char[], Int32, Int32) |
將字元陣列中的一區段寫入至目前的資料流,並按照所使用的 |
Write(Decimal) |
將十進位值寫入目前的資料流,並將資料流位置往前移十六個位元組。 |
Write(Double) |
將八位元組浮點數值寫入目前資料流,並將資料流目前位置前移八個位元組。 |
Write(Half) |
將雙位元組浮點數寫入目前的數據流,並將數據流位置往前移兩個字節。 |
Write(Int16) |
將二位元組帶正負號的整數 (Signed Integer) 寫入目前資料流,並將資料流目前位置前移兩個位元組。 |
Write(Int32) |
將四位元組帶正負號的整數寫入目前資料流,並將資料流目前位置前移四個位元組。 |
Write(Int64) |
將八位元組帶正負號的整數寫入目前資料流,並將資料流目前位置前移八個位元組。 |
Write(ReadOnlySpan<Byte>) |
將位元組範圍寫入目前的資料流。 |
Write(ReadOnlySpan<Char>) |
將字元範圍寫入目前的資料流,並按照所使用的 |
Write(SByte) |
將帶正負號 (Signed) 位元組寫入目前資料流,並將資料流位置前移一個位元組。 |
Write(Single) |
將四位元組浮點數 (Floating-Point) 值寫入目前資料流,並將資料流目前位置前移四個位元組。 |
Write(String) |
將有長度前置字元的字串以目前 BinaryWriter 的編碼方式寫入此資料流,並按照所使用的編碼方式和寫入資料流的特定字元,將資料流中目前的位置往前移。 |
Write(UInt16) |
將二位元組不帶正負號的整數寫入目前資料流,並將資料流目前位置前移兩個位元組。 |
Write(UInt32) |
將四位元組不帶正負號的整數寫入目前資料流,並將資料流目前位置前移四個位元組。 |
Write(UInt64) |
將八位元組不帶正負號的整數值寫入目前資料流,並將資料流目前位置前移八個位元組。 |
Write7BitEncodedInt(Int32) |
以壓縮格式寫入 32 位元整數。 |
Write7BitEncodedInt64(Int64) |
一次寫出 7 位數字。 |
明確介面實作
IDisposable.Dispose() |
釋放 BinaryWriter 所使用的 Unmanaged 資源,並選擇性地釋放 Managed 資源。 |
擴充方法
ConfigureAwait(IAsyncDisposable, Boolean) |
設定如何執行從非同步可處置項目傳回的工作 await。 |
適用於
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應