【发布时间】:2013-12-27 08:42:42
【问题描述】:
我有一个由内存流支持的二进制写入器:
BinaryWriter m_binaryWriter = new BinaryWriter(new MemoryStream(BUFFER_SIZE));
我想获取基本阅读器并将其读入字节数组:
long DataLength = m_binaryWriter.BaseStream.Length;
byte[] MemoryStrData = new byte[DataLength];
int BytesRead = m_binaryWriter.BaseStream.Read(MemoryStrData, 0, (int)DataLength);
但是,BytesRead 始终为 0(显然 MemoryStrData 包含所有 0)。我试图使用 BinaryReader 从基本流中读取流,但这导致了同样的事情。我在这里遗漏了什么吗?
【问题讨论】:
-
你确定你不是在追求
BinaryReader而不是BinaryWriter..? -
是的,我正在将数据写入二进制写入器,但想要访问一个连续的块(一旦它越过 BUFFER_SIZE)。
-
您最好实现从
Stream派生的自定义类并在您的类中实现任何奇怪的缓冲/部分提交/日志记录(无论您通过从流中读取随机块来追求什么)...
标签: c# memorystream binarywriter