首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BufferedStream Seek返回不同的结果

BufferedStream Seek返回不同的结果
EN

Stack Overflow用户
提问于 2011-03-12 02:43:34
回答 1查看 274关注 0票数 1

非常奇怪的行为

如果我在一个文件的顶部创建一个bufferedstream,然后寻找一个偏移量,我会得到一个字节块

如果我将调试器移回seek和re-seek,我会得到额外的两个字符

我已经检查过三次了。

这个类可能有bug吗?

如果我重新搜索位置,我希望得到相同的结果-文件没有更改-我以只读模式打开它,并根据源进行查找

复制:

代码语言:javascript
复制
bufferedStream.Seek(100,0, 100)
bufferedStream.Reade(buffer, 0, 100)

与你从这里得到的不同

代码语言:javascript
复制
bufferedStream.Seek(100,0, 100)
bufferedStream.Reade(buffer, 0, 100)
EN

回答 1

Stack Overflow用户

发布于 2011-03-12 03:21:55

首先,如果不检查Read的返回值,就很难知道它们是否相同-是否可能它们只是选择了不同的块?(完全有效;您的工作是确保循环读取,直到您有足够的数据,或EOF)。

然而,我想知道这里是否涉及BOM -特别是如果您坐在文本阅读器的顶部。简单地说,读者期望start中的物料清单;因此它很可能在第一次通过时将其隐藏起来。但是如果你在使用相同的读取器/解码器的时候倒带流,它将不会一个BOM,所以会尝试将它报告为字符数据(或者抛出一个错误,取决于配置)。

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

https://stackoverflow.com/questions/5277008

复制
相关文章

相似问题

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