如何解决在c#中读取二进制数据/ ReadAsync不会读取计数中指定的所有内容
我阅读了此博文https://jonskeet.uk/csharp/readbinary.html,
FileStream可能只是将文件的前10个字节读入缓冲区。只有在某些数据可用(或到达流的末尾)之前,才能保证Read方法阻塞。
您知道ReadAsync是否需要做同样的考虑。
您还知道在哪种情况下会发生这种情况吗,Read / ReadAsync不会读取计数中指定的所有内容?
解决方法
您还知道在哪种情况下会发生这种情况吗,Read / ReadAsync不会读取计数中指定的所有内容?
当可用数据较少时,请指定。
最琐碎的是您在文件末尾找到的位置。
如MSDN所述:
如果当前可用的字节数小于请求的数目,则结果值可以小于请求的字节数;如果已到达流的末尾,则结果值可以为0(零)。
也很常见;从TCP / IP缓冲区读取时,尽管通常不会是FileStream
。还有其他Stream
个继承的类型,它们共享相同的方法。参见:System.IO.Stream
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。