java中FileInputStream的available() 方法的作用是什么?
java中FileInputStream的available()方法的作用是什么?我看了api上面的解释是:返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或...
java中FileInputStream的available() 方法的作用是什么?我看了api上面的解释是:返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。我看不大明白,请回答一下,谢谢
展开
5个回答
展开全部
①如果要从网络中下载文件时,我们知道网络是不稳定的,也就是说网络下载时,read()方法是阻塞的,说明这时我们用inputStream.available()获取不到文件的总大小。
此时就需要通过
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
httpconn.getContentLength();//获取文件长度
来获取文件的大小。
②如果是本地文件的话,用此方法就返回实际文件的大小。
③这个方法其实是通过文件描述符获取文件的总大小,而并不是事先将磁盘上的文件数据全部读入流中,再获取文件总大小。
希望能用心去体会一下,选择性使用
此时就需要通过
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
httpconn.getContentLength();//获取文件长度
来获取文件的大小。
②如果是本地文件的话,用此方法就返回实际文件的大小。
③这个方法其实是通过文件描述符获取文件的总大小,而并不是事先将磁盘上的文件数据全部读入流中,再获取文件总大小。
希望能用心去体会一下,选择性使用
展开全部
返回的实际可读字节数,也就是总大小
但是需要注意的是。java虚拟机中的字符是Unicode编码,占两个字符,假如一个txt文档内容为abcde是ASCII码,那么每个字符就是一个字节,所以共5个字节。
注意,class文件中的编码也不是Unicode的,而是utf8的
但是需要注意的是。java虚拟机中的字符是Unicode编码,占两个字符,假如一个txt文档内容为abcde是ASCII码,那么每个字符就是一个字节,所以共5个字节。
注意,class文件中的编码也不是Unicode的,而是utf8的
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一般我是用作判断文件大小来使用。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询