2009-01-12 111 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