首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EndOfStreamException与简单BinaryWriter和BinaryReader

EndOfStreamException与简单BinaryWriter和BinaryReader
EN

Stack Overflow用户
提问于 2015-04-21 08:16:32
回答 1查看 4.2K关注 0票数 3

我使用以下代码:

代码语言:javascript
复制
var fileStream = new MemoryStream();
var binaryWriter = new BinaryWriter(fileStream);
var binaryReader = new BinaryReader(fileStream);

binaryWriter.Write("Hello");
var msg = binaryReader.ReadString();

但是,我得到了以下例外:

代码语言:javascript
复制
System.IO.EndOfStreamException: Unable to read beyond the end of the stream.

在读取之前,binaryReader.BaseStream.Length大于0,但是binaryReader.PeekChar()返回-1。

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-21 08:19:12

在你写信到溪流之后,溪流的位置将在你写给它的东西的长度上。

为了在写入它之后直接从它读取,您必须重置流的位置:

代码语言:javascript
复制
binaryWriter.Write("Hello");
binaryWriter.BaseStream.Position = 0;
var msg = binaryReader.ReadString();

将导致写入流的原始"Hello“被分配给msg

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29766572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档