Nếu bạn sử dụng ReadToEnd
, chúng giống nhau. Nếu không, bằng cách sử dụng StreamReader
cho phép bạn đọc byte tại một thời điểm, thực hiện một số phép tính với chúng, và sau đó vứt chúng đi khi cần thiết. Ví dụ, nếu bạn đã có một tập tin chứa danh sách 2.000 số, và bạn muốn thêm chúng lại với nhau, bạn có thể:
- Gọi
File.ReadAllText
để đọc tất cả mọi thứ vào một chuỗi và sau đó phân tích cú pháp thông qua đó chuỗi để tính tổng .
- Hoặc bạn có thể tạo
StreamReader
và đọc một vài byte cùng một lúc, tính tổng như bạn đi.
Sự khác biệt chính giữa hai cách tiếp cận này là sử dụng bộ nhớ thoáng qua. Sau khi bạn có tổng, bạn luôn có thể ném tất cả dữ liệu trung gian đi. Trong phương pháp File.ReadAllText
, tại một thời điểm nào đó bạn có toàn bộ nội dung tệp trong bộ nhớ, trong khi với phương pháp StreamReader
, bạn chỉ có một vài byte nội dung tệp trong bộ nhớ cùng một lúc. Điều này có thể là một vấn đề tùy thuộc vào kích thước tệp của bạn và loại tính toán bạn đang làm.
File.ReadAllText
thuận tiện và nhanh chóng. StreamReader
mạnh mẽ nhưng hiệu quả hơn.
Nguồn
2010-08-23 07:19:44