2012-05-14 25 views
10

Làm cách nào để quản lý việc đóng StreamReaderStreamWriter đang sử dụng cùng một luồng cơ bản?StreamReader và StreamWriter trên cùng một luồng?

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

Tôi biết rằng tôi có thể đơn giản bỏ qua việc đóng trình đọc/ghi và chỉ đóng luồng cơ bản. Tuy nhiên, có vẻ như một chút hack, vì nó dựa trên giả thiết giả định rằng người đọc/người viết không có bất cứ điều gì để vứt bỏ (có thể không phải là trường hợp trong tương lai).

Tôi biết điều này đã được giải quyết trong .NET 4.5 với một đối số hàm tạo bổ sung, nhưng cho đến khi .NET 4.5 được phát hành, làm cách nào để giải quyết nó theo cách thích hợp?

Trả lời

5

Đảm bảo bạn Flush() nhà văn trước tiên.

Và sau đó chỉ Vứt bỏ hoặc Đóng 2 trang trí và luồng (các cách sử dụng lồng nhau là OK).

Các vấn đề liên quan