2014年4月16日 星期三

[C#]讓StreamReader從頭開始讀取

有時候我們會希望先從檔案讀一部分資料後,再重頭從檔案最前面讀取資料
大部分的程式語言都會提供Seek函式,讓你設定讀取的位置
不過在C#中會根據你使用Stream的不同,作法會有點不一樣
大多數的Stream都只要呼叫Seek函式指回0就可以
比較要注意的是使用StreamReader的時候,你需要多呼叫DiscardBufferedData函式來把cache清空
把cache清掉常常會被忘記,使用StreamReader要多加注意
fileReader.DiscardBufferedData(); 
fileReader.BaseStream.Seek(0, SeekOrigin.Begin); 
fileReader.BaseStream.Position = 0;

沒有留言:

張貼留言