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。
Important
此類型會實作 IDisposable 介面。 當您完成使用這個物品後,應直接或間接地處理它。 若要直接處置類型,請在 Disposetry/ 區塊中呼叫其 catch 方法。 若要間接處置它,請使用語言建構,例如 using (C#) 或 Using (在 Visual Basic 中)。 如需詳細資訊,請參閱介面主題中的
衍生類別可以覆寫該類別的方法,以提供唯一的字元編碼。
建構函式
| 名稱 | Description |
|---|---|
| BinaryWriter() |
初始化一個寫入串流的類別新實例 BinaryWriter 。 |
| BinaryWriter(Stream, Encoding, Boolean) |
根據指定的串流與字元編碼初始化該類別的新實例 BinaryWriter ,並可選擇性地保持串流開啟。 |
| BinaryWriter(Stream, Encoding) |
根據指定的串流與字元編碼初始化該類別的新實例 BinaryWriter 。 |
| BinaryWriter(Stream) |
根據指定的串流並使用 UTF-8 編碼,初始化該 BinaryWriter 類別的新實例。 |
欄位
| 名稱 | Description |
|---|---|
| Null |
指定一個 BinaryWriter 沒有備份的商店。 |
| OutStream |
保持底層的流。 |
屬性
| 名稱 | Description |
|---|---|
| BaseStream |
得到 的底層流。BinaryWriter |
方法
| 名稱 | Description |
|---|---|
| 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) |
會將一個位元組 |
| Write(Byte) |
寫入一個未簽名的位元組到目前串流,並將串流位置往前推進一個位元組。 |
| Write(Byte[], Int32, Int32) |
將位元組陣列的一個區域寫入目前的串流。 |
| Write(Byte[]) |
將一個位元組陣列寫入底層串流。 |
| Write(Char) |
會將 Unicode 字元寫入目前串流,並根據所用及特定字元推進串流的 |
| Write(Char[], Int32, Int32) |
將字元陣列的一個區段寫入目前串流,並根據所用或特定字元,推進串流 |
| Write(Char[]) |
將字元陣列寫入目前串流,並根據所用及特定字元推進串流的 |
| Write(Decimal) |
將小數值寫入目前串流,並將串流位置前進十六位元組。 |
| 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 位元。 |
明確介面實作
| 名稱 | Description |
|---|---|
| IDisposable.Dispose() |
釋放 未管理的資源, BinaryWriter 並可選擇性地釋放受管理資源。 |
擴充方法
| 名稱 | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
設定如何執行從異步可處置專案傳回的工作等候。 |