Pertanyaan StreamReader dan StreamWriter di Stream yang sama?


Bagaimana cara mengelola penutupan StreamReader dan StreamWriter yang menggunakan aliran dasar yang sama?

var stream = /*...*/;
var reader = new StreamReader(stream);
var writer = new StreamWRiter(stream);

Saya tahu bahwa saya bisa mengabaikan pembaca / penulis dan menutup aliran yang mendasarinya. Namun, itu sepertinya sedikit meretas, karena ini didasarkan pada anggapan bahwa pembaca / penulis tidak memiliki apa pun untuk dibuang (yang mungkin tidak akan terjadi di masa depan).

Saya tahu ini telah dipecahkan dalam .NET 4.5 dengan argumen konstruktor tambahan, tetapi sampai .NET 4.5 dilepaskan, bagaimana cara menyelesaikannya dengan cara yang tepat?


10
2018-05-14 09:00


asal


Jawaban:


Pastikan Anda Flush() penulis pertama.

Dan kemudian hanya Dispose atau Tutup 2 dekorator dan aliran (nested usings are OK).


5
2018-05-14 09:24