①如果要从网络中下载文件时,我们知道网络是不稳定的,也就是说网络下载时,read()方法是阻塞的,说明这时我们用inputStream.available()获取不到文件的总大小。
此时就需要通过
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
httpconn.getContentLength();//获取文件长度
来获取文件的大小。
②如果是本地文件的话,用此方法就返回实际文件的大小。
③这个方法其实是通过文件描述符获取文件的总大小,而并不是事先将磁盘上的文件数据全部读入流中,再获取文件总大小。
希望能用心去体会一下,选择性使用
返回的实际可读字节数,也就是总大小
但是需要注意的是。java虚拟机中的字符是Unicode编码,占两个字符,假如一个txt文档内容为abcde是ASCII码,那么每个字符就是一个字节,所以共5个字节。
注意,class文件中的编码也不是Unicode的,而是utf8的
返回流中可以读取的字节数
http://zhidao.baidu.com/link?url=P5vJLXg3Xw_oJz7SKHtCBvtLvZpZ3t_JuPUKbLELoBHawe2P07QHlEiUcV0FM8bQEyMQaN3VcFjXKHJGikemfa
一般我是用作判断文件大小来使用。。