关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
来源:互联网 发布:网络惩罚男朋友的招数 编辑:程序博客网 时间:2024/05/17 07:17
如果用inputStream对象的available()方法获取流中可读取的数据大小,通常我们调用这个函数是在下载文件或者对文件进行其他处理时获取文件的总大小。
以前在我们初学File和inputStream和outputStream时,有需要将文件从一个文件夹复制到另一个文件夹中,这时候我们用的就是inputStream.available()来获取文件的总大小,而且屡试不爽。
但是当我们要从网络URL中下载一个文件时,我们发现得到的数值并不是需要下载的文件的总大小。
返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。下一个调用可能是同一个线程,也可能是另一个线程。一次读取或跳过此估计数个字节不会受阻塞,但读取或跳过的字节数可能小于该数
所以说要从网络中下载文件时,我们知道网络是不稳定的,也就是说网络下载时,read()方法是阻塞的,说明这时我们用
inputStream.available()获取不到文件的总大小。
网络下载获取文件总大小的代码:
- HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
- httpconn.getContentLength();
我们再来看看httpconn.getContentLength();
Java代码
- /**
- * Gets the content length in bytes specified by the response header field
- * {@code content-length} or {@code -1} if this field is not set.
- *
- * @return the value of the response header field {@code content-length}.
- * @since Android 1.0
- */
- public int getContentLength() {
- return getHeaderFieldInt("Content-Length", -1);//$NON-NLS-1$
- }
意思是从http预解析头中获取“Content-length”字段的值
其实也是类似从文件描述符中获取文件的总大小
0 0
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()方法获取下载文件的总大小
- 关于inputStream.available()方法获取下载文件的总大小
- 下载网络文件HttpURLConnection.getContentLength()大小为
- 下载网络文件HttpURLConnection.getContentLength()大小为 0
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 下载网络文件HttpURLConnection.getContentLength()大小为 0
- (4.3.2.14)下载网络文件HttpURLConnection.getContentLength()大小为 -1
- 关于InputStream类的available()方法
- 关于InputStream中available()方法的问题
- 关于InputStream类的available()方法
- 关于InputStream类的available()方法
- 使用HttpURLConnection的getContentLength()方法返回-1??
- C语言编译过程(自己用)
- 机房收费系统之上下机
- tp3.2引入phpexcel 第三方类库
- Centos 7安装VNC服务
- 判断div滑动到底部的scroll代码
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- jquery基础知识
- 闭包
- java之命令行参数
- hdu3549 网络流ek模板
- 《Testing with Xcode》第五章——Debugging Tests
- HDU-2063-过山车【匈牙利算法】【二分匹配】
- SpringSide 3 中的安全框架
- 详解https是如何确保安全的?