2012-04-04 85 views

回答

1

StreamReader類是逐行讀取文件的典型選擇。它不保留它在文件中讀取的任何歷史記錄,因此不知道最後一行的結尾或下一行的位置。當請求時(通過ReadLine),它只是處理字符,直到它到達新的行字符串或文件的結尾。

我不知道StreamReader的實際實現,但我會假設它使用Encoding類來處理多字節編碼,並且只維護一個可能預讀取數據的小緩衝區以提高讀取性能(讀取塊比現在需要的10個字節更好)。任何其他緩衝區(例如當前行中的字符)都會使當地人像ReadLine那樣需要它們。

如果您需要隨機查找,則需要使用BaseStream屬性爲自己生成行起始表,然後將該流找到所需行的開頭。從那裏,你應該可以照常使用ReadLine

+0

我注意到streamreader沒有偏移屬性。這是基地流踢什麼地方?是的,我會需要線開始表我想 – 2012-04-04 05:25:01

+0

+1。這是東西。我知道了。 – 2012-04-04 05:56:13