当前位置:  开发笔记 > 编程语言 > 正文

如何判断流已被读到最后?

如何解决《如何判断流已被读到最后?》经验,为你挑选了1个好方法。

我只是在编写一个简单的方法来从一般流中读取数据 - 这意味着它可能是一个FileStream或NetworkStream而不知道它的长度.我重复将流读入byte []并将数据推送到另一个流或其他任何流.我的问题是,我怎么能注意到流完成了?我试图在Read方法返回0 时返回 - 这是正确的方法吗?它似乎可以读取文件,但有时会遇到从网络读取数据的问题.



1> Jon Skeet..:

是的,Read反复调用并在返回0时完成是完全正确的方法.

网络流也很好 - 它们将阻塞,直到收到任何数据或流被断开.查看以下文档Stream.Read:

仅当位置当前位于流的末尾时,返回值才为零.在没有数据可用的情况下,实现将阻塞,直到可以读取至少一个字节的数据.只有当流中没有更多数据并且不再需要更多数据(例如关闭的套接字或文件末尾)时,read才返回0.

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有