共用方式為


StreamReader 建構函式

定義

初始化指定串流的類別新實例 StreamReader

多載

名稱 Description
StreamReader(Stream)

初始化指定串流的類別新實例 StreamReader

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

根據指定的字元編碼、位元組順序標記偵測選項及緩衝區大小,初始化指定串流的新類別實例 StreamReader ,並可選擇性地保持串流開啟。

StreamReader(String, Encoding, Boolean, FileStreamOptions)

初始化該類別的新實例 StreamReader ,依指定檔案路徑,使用指定的字元編碼、位元組順序標記偵測選項,並設定為指定 FileStreamOptions 物件。

StreamReader(String, Encoding, Boolean, Int32)

初始化指定檔案名稱的新類別實例 StreamReader ,並使用指定的字元編碼、位元組順序標記偵測選項及緩衝區大小。

StreamReader(Stream, Encoding, Boolean, Int32)

初始化指定串流的新類別實例 StreamReader ,並使用指定的字元編碼、位元組順序標記偵測選項及緩衝區大小。

StreamReader(Stream, Encoding, Boolean)

初始化指定串流的新類別實例 StreamReader ,並使用指定的字元編碼與位元組順序標記偵測選項。

StreamReader(String, Encoding, Boolean)

初始化指定檔案名稱類別的新實例 StreamReader ,並使用指定的字元編碼與位元組順序標記偵測選項。

StreamReader(String, FileStreamOptions)

初始化指定檔案路徑的新類別實例 StreamReader ,使用預設編碼,能偵測檔案開頭的位元組順序標記,並設定為指定 FileStreamOptions 物件。

StreamReader(String, Boolean)

初始化指定檔名類別的新實例 StreamReader ,並使用指定的位元組順序標記偵測選項。

StreamReader(Stream, Encoding)

初始化指定串流的類別新實例 StreamReader ,並使用指定的字元編碼。

StreamReader(Stream, Boolean)

初始化指定串流的新類別實例 StreamReader ,並使用指定的位元組順序標記偵測選項。

StreamReader(String)

初始化該類別的新實例 StreamReader ,以設定指定的檔案名稱。

StreamReader(String, Encoding)

初始化指定檔案名稱的類別實例 StreamReader ,並使用指定的字元編碼。

StreamReader(Stream)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定串流的類別新實例 StreamReader

public:
 StreamReader(System::IO::Stream ^ stream);
public StreamReader(System.IO.Stream stream);
new System.IO.StreamReader : System.IO.Stream -> System.IO.StreamReader
Public Sub New (stream As Stream)

參數

stream
Stream

要閱讀的直播。

例外狀況

stream 不支援閱讀。

streamnull

範例

以下程式碼範例展示了此 StreamReader 建構器。

using System;
using System.IO;

class Test
{
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        try
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }

            using (StreamWriter sw = new StreamWriter(new FileStream(path, FileMode.CreateNew)))
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("reading");
            }

            using (StreamReader sr = new StreamReader(new FileStream(path, FileMode.Open)))
            {
                while (sr.Peek() >= 0)
                {
                    Console.WriteLine(sr.ReadLine());
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"

        Try
            If File.Exists(path) Then
                File.Delete(path)
            End If

            Dim sw As StreamWriter = New StreamWriter(path)
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim fs As FileStream = New FileStream(path, FileMode.Open)

            Dim sr As StreamReader = New StreamReader(fs)

            Do While sr.Peek() >= 0
                Console.WriteLine(sr.ReadLine())
            Loop
            sr.Close()
            fs.Close()
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

備註

此建構子將編碼初始化為 UTF8Encoding、屬性, BaseStream 利用 stream 參數及內部緩衝區大小為 1024 位元組。

當被呼叫時StreamReader.Dispose,物件StreamReader會呼叫Dispose()所提供的Stream物件。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(Stream, Encoding, Boolean, Int32, Boolean)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

根據指定的字元編碼、位元組順序標記偵測選項及緩衝區大小,初始化指定串流的新類別實例 StreamReader ,並可選擇性地保持串流開啟。

public:
 StreamReader(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen);
public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen);
public StreamReader(System.IO.Stream stream, System.Text.Encoding? encoding = default, bool detectEncodingFromByteOrderMarks = true, int bufferSize = -1, bool leaveOpen = false);
new System.IO.StreamReader : System.IO.Stream * System.Text.Encoding * bool * int * bool -> System.IO.StreamReader
Public Sub New (stream As Stream, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean, bufferSize As Integer, leaveOpen As Boolean)
Public Sub New (stream As Stream, Optional encoding As Encoding = Nothing, Optional detectEncodingFromByteOrderMarks As Boolean = true, Optional bufferSize As Integer = -1, Optional leaveOpen As Boolean = false)

參數

stream
Stream

要閱讀的直播。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

true尋找檔案開頭的位元組順序標記;否則,。 false

bufferSize
Int32

最小緩衝區大小,以位元組為單位。

leaveOpen
Boolean

true 在物件被處理後 StreamReader 保持流路開啟;否則, false

備註

除非你將參數設為 ,否則物件在被呼叫時會呼叫Dispose()所提供的Stream物件StreamReader.DisposeStreamReadertrueleaveOpen

緩衝區大小(位元組)由 bufferSize 參數設定。 若 bufferSize 小於最小允許大小(128 位元組),則使用最小允許大小。

這個建構器讓你能在第一次讀取 StreamReader 物件時更改編碼。 若 detectEncodingFromByteOrderMarks 參數為 true,建構子會透過查看串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

備註

從 讀取 Stream時,使用與串流內部緩衝區大小相同的緩衝區會更有效率。

謹慎

當你彙整一組特定文化設定的角色,並用不同文化設定取回相同角色時,這些角色可能無法正確解讀,導致例外出現。

適用於

StreamReader(String, Encoding, Boolean, FileStreamOptions)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化該類別的新實例 StreamReader ,依指定檔案路徑,使用指定的字元編碼、位元組順序標記偵測選項,並設定為指定 FileStreamOptions 物件。

public:
 StreamReader(System::String ^ path, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks, System::IO::FileStreamOptions ^ options);
public StreamReader(string path, System.Text.Encoding? encoding, bool detectEncodingFromByteOrderMarks, System.IO.FileStreamOptions options);
public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, System.IO.FileStreamOptions options);
new System.IO.StreamReader : string * System.Text.Encoding * bool * System.IO.FileStreamOptions -> System.IO.StreamReader
Public Sub New (path As String, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean, options As FileStreamOptions)

參數

path
String

完整的檔案路徑。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

options
FileStreamOptions

一個指定底層 FileStream配置選項的物件。

例外狀況

path 無法讀取。

      -or-

path 是空字串(“”)。

pathencodingoptionsnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

另請參閱

適用於

StreamReader(String, Encoding, Boolean, Int32)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定檔案名稱的新類別實例 StreamReader ,並使用指定的字元編碼、位元組順序標記偵測選項及緩衝區大小。

public:
 StreamReader(System::String ^ path, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
public StreamReader(string path, System.Text.Encoding? encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
new System.IO.StreamReader : string * System.Text.Encoding * bool * int -> System.IO.StreamReader
Public Sub New (path As String, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean, bufferSize As Integer)

參數

path
String

完整的檔案路徑。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

bufferSize
Int32

最小緩衝區大小,以位元組為單位。

例外狀況

path 是空字串(“”)。

pathencodingnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

bufferSize 小於或等於零,唯獨 -1 可用來表示預設緩衝區大小。

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構器依參數設定 encoding 初始化編碼。

這個建構器允許你在第一次讀取 StreamReader 物件時更改編碼。 detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

緩衝區大小(位元組)由 bufferSize 參數設定。 若 bufferSize 小於最小允許大小(128 位元組),則使用最小允許大小。

path參數可以是檔案名稱,包括位於通用命名慣例(UNC)共享上的檔案。

path參數不一定要是儲存在磁碟上的檔案;它可以是系統中任何支援使用串流存取的部分。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(Stream, Encoding, Boolean, Int32)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定串流的新類別實例 StreamReader ,並使用指定的字元編碼、位元組順序標記偵測選項及緩衝區大小。

public:
 StreamReader(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
public StreamReader(System.IO.Stream stream, System.Text.Encoding? encoding, bool detectEncodingFromByteOrderMarks, int bufferSize);
new System.IO.StreamReader : System.IO.Stream * System.Text.Encoding * bool * int -> System.IO.StreamReader
Public Sub New (stream As Stream, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean, bufferSize As Integer)

參數

stream
Stream

要閱讀的直播。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

bufferSize
Int32

最小緩衝區大小,以位元組為單位。

例外狀況

串流不支援閱讀。

streamencodingnull

bufferSize 小於或等於零,唯獨 -1 可用來表示預設緩衝區大小。

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

緩衝區大小(位元組)由 bufferSize 參數設定。 若 bufferSize 小於最小允許大小(128 位元組),則使用最小允許大小。

這個建構器允許你在第一次讀取 StreamReader 物件時更改編碼。 detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

當被呼叫時StreamReader.Dispose,物件StreamReader會呼叫Dispose()所提供的Stream物件。

備註

從 讀取 Stream時,使用與串流內部緩衝區大小相同的緩衝區會更有效率。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(Stream, Encoding, Boolean)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定串流的新類別實例 StreamReader ,並使用指定的字元編碼與位元組順序標記偵測選項。

public:
 StreamReader(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks);
public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks);
public StreamReader(System.IO.Stream stream, System.Text.Encoding? encoding, bool detectEncodingFromByteOrderMarks);
new System.IO.StreamReader : System.IO.Stream * System.Text.Encoding * bool -> System.IO.StreamReader
Public Sub New (stream As Stream, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean)

參數

stream
Stream

要閱讀的直播。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

例外狀況

stream 不支援閱讀。

streamencodingnull

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構器會BaseStream依參數、encoding使用該stream參數的特性及內部緩衝區大小初始化編碼為 1024 位元組。

detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

當被呼叫時StreamReader.Dispose,物件StreamReader會呼叫Dispose()所提供的Stream物件。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(String, Encoding, Boolean)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定檔案名稱類別的新實例 StreamReader ,並使用指定的字元編碼與位元組順序標記偵測選項。

public:
 StreamReader(System::String ^ path, System::Text::Encoding ^ encoding, bool detectEncodingFromByteOrderMarks);
public StreamReader(string path, System.Text.Encoding? encoding, bool detectEncodingFromByteOrderMarks);
public StreamReader(string path, System.Text.Encoding encoding, bool detectEncodingFromByteOrderMarks);
new System.IO.StreamReader : string * System.Text.Encoding * bool -> System.IO.StreamReader
Public Sub New (path As String, encoding As Encoding, detectEncodingFromByteOrderMarks As Boolean)

參數

path
String

完整的檔案路徑。

encoding
Encoding

字元編碼要用。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

例外狀況

path 是空字串(“”)。

pathencodingnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構子依參數初始 encoding 化編碼,內部緩衝區大小為 1024 位元組。

detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

path參數可以是檔案名稱,包括位於通用命名慣例(UNC)共享上的檔案。

path參數不一定要是儲存在磁碟上的檔案;它可以是系統中任何支援使用串流存取的部分。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(String, FileStreamOptions)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定檔案路徑的新類別實例 StreamReader ,使用預設編碼,能偵測檔案開頭的位元組順序標記,並設定為指定 FileStreamOptions 物件。

public:
 StreamReader(System::String ^ path, System::IO::FileStreamOptions ^ options);
public StreamReader(string path, System.IO.FileStreamOptions options);
new System.IO.StreamReader : string * System.IO.FileStreamOptions -> System.IO.StreamReader
Public Sub New (path As String, options As FileStreamOptions)

參數

path
String

完整的檔案路徑。

options
FileStreamOptions

一個指定底層 FileStream配置選項的物件。

例外狀況

path 無法讀取。

-或-

      <code data-dev-comment-type="paramref">path</code> is an empty string ("").

pathoptionsnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

另請參閱

適用於

StreamReader(String, Boolean)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定檔名類別的新實例 StreamReader ,並使用指定的位元組順序標記偵測選項。

public:
 StreamReader(System::String ^ path, bool detectEncodingFromByteOrderMarks);
public StreamReader(string path, bool detectEncodingFromByteOrderMarks);
new System.IO.StreamReader : string * bool -> System.IO.StreamReader
Public Sub New (path As String, detectEncodingFromByteOrderMarks As Boolean)

參數

path
String

完整的檔案路徑。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

例外狀況

path 是空字串(“”)。

pathnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構子將編碼初始化為 UTF8Encoding、屬性, BaseStream 利用 stream 參數及內部緩衝區大小為 1024 位元組。

path參數可以是檔案名稱,包括位於通用命名慣例(UNC)共享上的檔案。

path參數不一定要是儲存在磁碟上的檔案;它可以是系統中任何支援使用串流存取的部分。

detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,就會使用 。UTF8Encoding 詳情請參閱方法 Encoding.GetPreamble

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(Stream, Encoding)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定串流的類別新實例 StreamReader ,並使用指定的字元編碼。

public:
 StreamReader(System::IO::Stream ^ stream, System::Text::Encoding ^ encoding);
public StreamReader(System.IO.Stream stream, System.Text.Encoding encoding);
public StreamReader(System.IO.Stream stream, System.Text.Encoding? encoding);
new System.IO.StreamReader : System.IO.Stream * System.Text.Encoding -> System.IO.StreamReader
Public Sub New (stream As Stream, encoding As Encoding)

參數

stream
Stream

要閱讀的直播。

encoding
Encoding

字元編碼要用。

例外狀況

stream 不支援閱讀。

streamencodingnull

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

字元編碼由 encoding 參數設定,緩衝區大小設定為 1024 位元組。 物件 StreamReader 嘗試透過查看串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

當被呼叫時StreamReader.Dispose,物件StreamReader會呼叫Dispose()所提供的Stream物件。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(Stream, Boolean)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定串流的新類別實例 StreamReader ,並使用指定的位元組順序標記偵測選項。

public:
 StreamReader(System::IO::Stream ^ stream, bool detectEncodingFromByteOrderMarks);
public StreamReader(System.IO.Stream stream, bool detectEncodingFromByteOrderMarks);
new System.IO.StreamReader : System.IO.Stream * bool -> System.IO.StreamReader
Public Sub New (stream As Stream, detectEncodingFromByteOrderMarks As Boolean)

參數

stream
Stream

要閱讀的直播。

detectEncodingFromByteOrderMarks
Boolean

指示是否要在檔案開頭尋找位元組順序標記。

例外狀況

stream 不支援閱讀。

streamnull

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構子將編碼初始化為 UTF8Encoding、屬性, BaseStream 利用 stream 參數及內部緩衝區大小為 1024 位元組。

detectEncodingFromByteOrderMarks參數透過觀察串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 詳情請參閱方法 Encoding.GetPreamble

當被呼叫時StreamReader.Dispose,物件StreamReader會呼叫Dispose()所提供的Stream物件。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(String)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化該類別的新實例 StreamReader ,以設定指定的檔案名稱。

public:
 StreamReader(System::String ^ path);
public StreamReader(string path);
new System.IO.StreamReader : string -> System.IO.StreamReader
Public Sub New (path As String)

參數

path
String

完整的檔案路徑。

例外狀況

path 是空字串(“”)。

pathnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

範例

以下程式碼範例展示了此 StreamReader 建構器。

using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path = @"c:\temp\MyTest.txt";

        try
        {
            if (File.Exists(path))
            {
                File.Delete(path);
            }

            using (StreamWriter sw = new StreamWriter(path))
            {
                sw.WriteLine("This");
                sw.WriteLine("is some text");
                sw.WriteLine("to test");
                sw.WriteLine("Reading");
            }

            using (StreamReader sr = new StreamReader(path))
            {
                while (sr.Peek() >= 0)
                {
                    Console.WriteLine(sr.ReadLine());
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}
Imports System.IO

Public Class Test

    Public Shared Sub Main()
        Dim path As String = "c:\temp\MyTest.txt"

        Try
            If File.Exists(path) Then
                File.Delete(path)
            End If

            Dim sw As StreamWriter = New StreamWriter(path)
            sw.WriteLine("This")
            sw.WriteLine("is some text")
            sw.WriteLine("to test")
            sw.WriteLine("Reading")
            sw.Close()

            Dim sr As StreamReader = New StreamReader(path)

            Do While sr.Peek() >= 0
                Console.WriteLine(sr.ReadLine())
            Loop
            sr.Close()
        Catch e As Exception
            Console.WriteLine("The process failed: {0}", e.ToString())
        End Try
    End Sub
End Class

備註

完整的檔案路徑由 path 參數指定。 此建構子將編碼初始化為 1024 UTF8Encoding 位元組,緩衝區大小為 1024 位元組。

path參數可以是檔案名稱,包括位於通用命名慣例(UNC)共享上的檔案。

path參數不一定要是儲存在磁碟上的檔案;它可以是系統中任何支援使用串流存取的部分。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於

StreamReader(String, Encoding)

來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs
來源:
StreamReader.cs

初始化指定檔案名稱的類別實例 StreamReader ,並使用指定的字元編碼。

public:
 StreamReader(System::String ^ path, System::Text::Encoding ^ encoding);
public StreamReader(string path, System.Text.Encoding? encoding);
public StreamReader(string path, System.Text.Encoding encoding);
new System.IO.StreamReader : string * System.Text.Encoding -> System.IO.StreamReader
Public Sub New (path As String, encoding As Encoding)

參數

path
String

完整的檔案路徑。

encoding
Encoding

字元編碼要用。

例外狀況

path 是空字串(“”)。

pathencodingnull

找不到該檔案。

指定的路徑無效,例如位於未映射的硬碟上。

path 包含檔案名稱、目錄名稱或磁碟區標籤的錯誤或無效語法。

範例

以下程式碼範例展示了此 StreamReader 建構器。

private void getNewStreamReader()
{
    //Get a new StreamReader in ASCII format from a
    //file using a buffer and byte order mark detection
    StreamReader srAsciiFromFileFalse512 =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //file with byte order mark detection = false
    StreamReader srAsciiFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a file
    StreamReader srAsciiFromFile =
        new StreamReader("C:\\Temp\\Test.txt",
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //file with byte order mark detection = false
    StreamReader srFromFileFalse =
        new StreamReader("C:\\Temp\\Test.txt", false);
    //Get a new StreamReader from a file
    StreamReader srFromFile =
        new StreamReader("C:\\Temp\\Test.txt");
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false and a buffer
    StreamReader srAsciiFromStreamFalse512 = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false, 512);
    //Get a new StreamReader in ASCII format from a
    //FileStream with byte order mark detection = false
    StreamReader srAsciiFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII, false);
    //Get a new StreamReader in ASCII format from a FileStream
    StreamReader srAsciiFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        System.Text.Encoding.ASCII);
    //Get a new StreamReader from a
    //FileStream with byte order mark detection = false
    StreamReader srFromStreamFalse = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"),
        false);
    //Get a new StreamReader from a FileStream
    StreamReader srFromStream = new StreamReader(
        (System.IO.Stream)File.OpenRead("C:\\Temp\\Test.txt"));
}
Private Sub getNewStreamReader()
    Dim S As Stream = File.OpenRead("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'file using a buffer and byte order mark detection
    Dim SrAsciiFromFileFalse512 As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'file with byte order mark detection = false
    Dim SrAsciiFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a file 
    Dim SrAsciiFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt", _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'file with byte order mark detection = false        
    Dim SrFromFileFalse As StreamReader = New StreamReader("C:\Temp\Test.txt", False)
    'Get a new StreamReader from a file
    Dim SrFromFile As StreamReader = New StreamReader("C:\Temp\Test.txt")
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false and a buffer
    Dim SrAsciiFromStreamFalse512 As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII, False, 512)
    'Get a new StreamReader in ASCII format from a
    'FileStream with byte order mark detection = false
    Dim SrAsciiFromStreamFalse = New StreamReader(S, _
        System.Text.Encoding.ASCII, False)
    'Get a new StreamReader in ASCII format from a FileStream
    Dim SrAsciiFromStream As StreamReader = New StreamReader(S, _
        System.Text.Encoding.ASCII)
    'Get a new StreamReader from a
    'FileStream with byte order mark detection = false
    Dim SrFromStreamFalse As StreamReader = New StreamReader(S, False)
    'Get a new StreamReader from a FileStream
    Dim SrFromStream As StreamReader = New StreamReader(S)

End Sub

備註

此建構子依參數初始 encoding 化編碼,內部緩衝區大小為 1024 位元組。 物件 StreamReader 嘗試透過查看串流的前四個位元組來偵測編碼。 如果檔案以適當的位元組順序標記開始,它會自動辨識 UTF-8、小端 UTF-16、大端 UTF-16、小端 UTF-32 以及大端 UTF-32 文字。 否則,則使用使用者提供的編碼。 詳情請參閱方法 Encoding.GetPreamble

path參數可以是檔案名稱,包括位於通用命名慣例(UNC)共享上的檔案。

path參數不一定要是儲存在磁碟上的檔案;它可以是系統中任何支援使用串流存取的部分。

謹慎

當你彙整一組具有特定文化設定的角色,並取得不同文化設定的相同角色時,這些角色可能無法被解讀,甚至可能導致例外出現。

關於常見 I/O 任務的清單,請參見 Common I/O 任務

另請參閱

適用於