Ini adalah yang lama, tetapi saya ingin melakukan sesuatu yang serupa hari ini dan menemukan bahwa semuanya telah berubah. Sejak .net 4.5, ada leaveOpen
argumen:
public StreamReader( Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen )
Satu-satunya masalah adalah bahwa tidak sepenuhnya jelas apa yang harus ditetapkan untuk parameter lainnya. Berikut ini beberapa bantuan:
Dari halaman msdn untuk StreamReader Constructor (Stream):
Konstruktor ini menginisialisasi pengodean ke UTF8Encoding, properti BaseStream menggunakan parameter stream, dan ukuran buffer internal hingga 1024 byte.
Itu hanya daun detectEncodingFromByteOrderMarks
yang menilai oleh kode sumber adalahtrue
public StreamReader(Stream stream)
: this(stream, true) {
}
public StreamReader(Stream stream, bool detectEncodingFromByteOrderMarks)
: this(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks, DefaultBufferSize) {
}
Akan lebih baik jika beberapa dari default itu diekspos atau jika argumennya opsional sehingga kita bisa menentukan yang kita inginkan.