2009-01-12 145 views

回答

4

不是我知道的;對於某些場景,您可以使用類似StreamReader的東西,並使用Peek

 using(StreamReader reader = new StreamReader(stream)) 
     { 
      /// ... lots of reading 
      int i = reader.Peek(); 
      /// ... lots of reading 
     } 

不過,我不認爲你可以把任意的數據回到流,除非你正在使用像MemoryStream,因此可以與數據猴。

即使您有一個Stream既可讀又可寫(罕見),那麼仍然只有一個遊標,因此在寫入後需要小心重置位置(因此它也需要可以搜索;再次,不常見);然而,這並不健壯 - 某些流(例如TCP中的網絡流)會將寫入視爲「將此內容發送到其他機器」,並且它永遠不會被讀取返回。並且它不是可搜索的; -p

+0

特別感興趣的是Console.In.Peek()和Console.In.Read() – 2014-07-30 14:51:06