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 中)。 如需詳細資訊,請參閱
衍生類別可以覆寫這個類別的方法,以提供唯一的字元編碼。
建構函式
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) |
將未帶正負號的位元組寫入目前數據流,並將數據流位置往前移一個字節。 |
Write(Byte[]) |
將位元組陣組寫入基礎數據流。 |
Write(Byte[], Int32, Int32) |
將位元組數位列的區域寫入目前數據流。 |
Write(Char) |
將 Unicode 字元寫入目前數據流,並根據所使用的 |
Write(Char[]) |
根據所使用的 |
Write(Char[], Int32, Int32) |
將字元陣列的區段寫入目前數據流,並根據所使用的 |
Write(Decimal) |
將十進位值寫入目前數據流,並將數據流位置往前移 16 個字節。 |
Write(Double) |
將八位元組浮點值寫入目前數據流,並將數據流位置往前移八個字節。 |
Write(Half) |
將雙位元組浮點值寫入目前數據流,並將數據流位置往前移兩個字節。 |
Write(Int16) |
將雙位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移兩個字節。 |
Write(Int32) |
將四位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移四個字節。 |
Write(Int64) |
將八位元組帶正負號的整數寫入目前數據流,並將數據流位置往前移八個字節。 |
Write(ReadOnlySpan<Byte>) |
將位元組範圍寫入至目前的數據流。 |
Write(ReadOnlySpan<Char>) |
將字元範圍寫入目前數據流,並根據所使用的 |
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) |
設定如何執行從異步可處置專案傳回的工作等候。 |