我在试验BufferedStream out MemoryStream
using (var ms = new MemoryStream(64))
using (var bs = new BufferedStream(ms, 32))
{
var buffer = new byte[] { 0xab, 0xab, 0xab, 0xab };
bs.Write(buffer, 0, buffer.Length);
bs.Flush();
var actual = new byte[4];
int cb = ms.Read(actual, 0, actual.Length);
Console.WriteLine(cb);
}它打印0。我原以为它会打印4,因为我认为bs.Flush()会将4缓冲的字节写入ms。
我是用错了BufferedStream,还是我的期望完全错了?
发布于 2017-03-20 10:52:24
你必须写
ms.Position = 0;
int cb = ms.Read(actual, 0, actual.Length);这是一个非常的常见错误,在写到它之后忘记倒带一个MemoryStream() :-) (假设我每次都这么做:-)
https://stackoverflow.com/questions/42901676
复制相似问题