2011-05-07 47 views
1
FileStream fs = new FileStream("Myfile.Txt",FileMode.Open,FileAccess.Read); 
StreamReader sr= new Streamreader(fs); 
sr.BaseStream.Seek(0,SeekOrigin.Begin); 

在這段代碼中,BaseStream在這段代碼中有什麼用處。c#2.0文件處理問題

追求的是方法, SR是類的StreamReader 的對象又是什麼BaseStream

回答

3

sr.BaseStream返回底層流,當流從讀寫器讀取,你可以使用這個直接在流上進行操作。

在您的示例sr.BaseStream和FileStream fs是相同的東西。

更多信息:http://msdn.microsoft.com/en-us/library/system.io.streamreader.basestream.aspx

通常儘管你想通過StreamReader本身的工作,因爲這與流工作時,抽象了一些困難。如果你舉個例子,你希望如何使用流話,我可以看到,如果我可以給使用可能更容易樣品StreamReader

1

你本可以縮短你的代碼:

//FileStream fs = new FileStream("Myfile.Txt",FileMode.Open,FileAccess.Read); 
//StreamReader sr= new Streamreader(fs); 
StreamReader sr = File.OpenText("Myfile.Txt"); // using-block omitted 
sr.BaseStream.Seek(0,SeekOrigin.Begin); 

然後你可以」不再使用fs。還有一個Stream正在創建,BaseStream可以讓你訪問。

並且請注意,在流上尋找之前,您應該小心刷新讀取器。