StreamWriter 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
實作 TextWriter,以特定編碼方式將字元寫入數據流。
public ref class StreamWriter : System::IO::TextWriter
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
public class StreamWriter : System.IO.TextWriter
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class StreamWriter : System.IO.TextWriter
type StreamWriter = class
inherit TextWriter
[<System.Serializable>]
type StreamWriter = class
inherit TextWriter
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type StreamWriter = class
inherit TextWriter
Public Class StreamWriter
Inherits TextWriter
- 繼承
- 繼承
- 屬性
範例
下列範例示範如何使用 StreamWriter 物件來寫入列出 C 磁碟驅動器上目錄的檔案,然後使用 StreamReader 物件來讀取和顯示每個目錄名稱。 最佳做法是在 using
語句中使用這些物件,以便正確處置 Unmanaged 資源。 當使用該語句的程序代碼完成時,using
語句會自動在 物件上呼叫 Dispose。 此範例中使用的建構函式不支援在 Windows 市集應用程式中使用。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace StreamReadWrite
{
class Program
{
static void Main(string[] args)
{
// Get the directories currently on the C drive.
DirectoryInfo[] cDirs = new DirectoryInfo(@"c:\").GetDirectories();
// Write each directory name to a file.
using (StreamWriter sw = new StreamWriter("CDriveDirs.txt"))
{
foreach (DirectoryInfo dir in cDirs)
{
sw.WriteLine(dir.Name);
}
}
// Read and show each line from the file.
string line = "";
using (StreamReader sr = new StreamReader("CDriveDirs.txt"))
{
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
}
}
}
}
Imports System.IO
Class Program
Shared Sub Main()
' Get the directories currently on the C drive.
Dim cDirs As DirectoryInfo() = New DirectoryInfo("c:\").GetDirectories()
' Write each directory name to a file.
Using sw As StreamWriter = New StreamWriter("CDriveDirs.txt")
For Each Dir As DirectoryInfo In cDirs
sw.WriteLine(Dir.Name)
Next
End Using
'Read and show each line from the file.
Dim line As String = ""
Using sr As StreamReader = New StreamReader("CDriveDirs.txt")
Do
line = sr.ReadLine()
Console.WriteLine(line)
Loop Until line Is Nothing
End Using
End Sub
End Class
備註
StreamWriter 是針對特定編碼中的字元輸出所設計,而衍生自 Stream 的類別則是針對位元組輸入和輸出所設計。
重要
此類型會實作 IDisposable 介面。 當您完成使用類型時,應該直接或間接處置它。 若要直接處置類型,請在 try
/catch
區塊中呼叫其 Dispose 方法。 若要間接處置它,請使用語言建構,例如 using
(C#) 或 Using
(在 Visual Basic 中)。 如需詳細資訊,請參閱
除非另有指定,否則 StreamWriter 預設為使用 UTF8Encoding 實例。 這個 UTF8Encoding
實例是建構而沒有位元組順序標記 (BOM),因此其 GetPreamble 方法會傳回空的位元組陣列。 這個建構函式的預設UTF-8編碼會擲回無效位元組的例外狀況。 此行為與編碼物件在 Encoding.UTF8 屬性中提供的行為不同。 若要指定 BOM 並判斷是否在無效的位元組上擲回例外狀況,請使用接受編碼物件的建構函式做為參數,例如 StreamWriter(String, Boolean, Encoding) 或 StreamWriter。
根據預設,StreamWriter 不是安全線程。 如需安全線程包裝函式,請參閱 TextWriter.Synchronized。
如需一般 I/O 工作的清單,請參閱 一般 I/O 工作。
建構函式
欄位
CoreNewLine |
儲存用於這個 |
Null |
提供 |
屬性
AutoFlush |
取得或設定值,指出 StreamWriter 是否會在每次呼叫 Write(Char)之後,將其緩衝區排清至基礎數據流。 |
BaseStream |
取得與備份存放區介面的基礎數據流。 |
Encoding |
取得寫入輸出的 Encoding。 |
FormatProvider |
取得控制項格式設定的物件。 (繼承來源 TextWriter) |
NewLine |
取得或設定目前 |
方法
明確介面實作
IDisposable.Dispose() |
如需此成員的描述,請參閱 Dispose()。 (繼承來源 TextWriter) |
擴充方法
ConfigureAwait(IAsyncDisposable, Boolean) |
設定如何執行從異步可處置專案傳回的工作等候。 |