c#中的任何函数是否等同于C的stdio函数ungetc()?
答案 0 :(得分:4)
不是我所知道的;对于某些情况,您可以使用类似StreamReader
的内容并使用Peek
?
using(StreamReader reader = new StreamReader(stream))
{
/// ... lots of reading
int i = reader.Peek();
/// ... lots of reading
}
但是,我不认为您可以将任意数据推回到流中,除非您使用的是MemoryStream
之类的内容,因此可以使用数据。
即使你有Stream
可读和可写(罕见),那么仍然只有一个光标,所以你需要小心在写完后重置位置(所以它需要也可以寻求;再次,不常见);然而,这并不健壮 - 一些流(例如TCP中的网络流)会将写入视为“将其发送到另一台机器”,并且它永远不会被读取返回。它不可寻求;-p