关于InputStream.available()方法遇到的一个问题

根据api文档描述,InputStream.available()方法旨在:返回可以不受阻塞地从此文件输入流中读取的字节数。

如果你读的是一个本地文件,一般不会有问题,但如果你读的是一个从网络传输中获取到的流,那么这个方法就不能给你返回流真正的长度了。

究其原因是在网络传输中,数据是分段发送的,也就是你一个20K的数据可能会分成三段发到目的地。这个时候使用available()方法就无法获取数据的真正的长度,因此不推荐在网络传输中使用这个方法。

posted @ 2018-08-02 14:33  源代码007  阅读(693)  评论(0编辑  收藏  举报