【发布时间】:2009-11-23 06:27:44
【问题描述】:
我对流有一些困难。我正在使用 FileStream 和 BinaryReader,但我遇到了一些奇怪的行为。首先(这是另一个问题,当我使用 StreamReader 时,我得到了奇怪的行为,当我 Peek 时 psoition 改变了,所以我使用 BinaryReader 很好)现在我有一个问题,有时当我做 Seek 时(使用当然底层的基本流 - FileStream)有时它工作正常(到达正确的位置)但有时它只是跳到一个超出文件长度的位置,它不会一直发生,例如我有一个问题到了1233*267的位置,但是过了一天就好了,问题出在别的地方。
FileStream m_fsReader = new FileStream(m_strDataFileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
BinaryReader m_brReader = new BinaryReader(m_fsReader);
和查找部分:
m_fsReader.Seek(offset, SeekOrigin.Begin);
谢谢,
【问题讨论】:
-
您可以通过将 FileShare.ReadWrite 更改为 FileShare.None 来运行您的程序吗?
-
拼写检查并重新格式化您的问题。
-
我可以更改 FileShare 。也许这个信息应该有帮助,进程写入文件,但有时我输入数据并将数据添加到文件中。系统何时进行搜索仅在启动进程时进行一次。
-
上面的代码看起来还不错——你确定问题不在于'offset'的计算吗?
-
是的,我确定问题不在计算中