FileInputStream怎么读取大小

bin_63 2014-04-14 08:10:32
上传文件,定义为FileInputStream型,现在我要对上传的文件做大小check,要判断文件大小是否为0,我查了下大多是根据FileInputStream.available()去做大小的判断,但是还是不太明白,能不能有前辈详细的帮我讲解下,希望可以给一个实际的例子,谢谢。
...全文
1104 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
S117 2014-04-15
  • 打赏
  • 举报
回复
你可以通过FileInputStream获取FileChannel然后通过FileChannel的size方法去获取
ghostkngiht 2014-04-15
  • 打赏
  • 举报
回复

        InputStream is = new FileInputStream(new File("/home/xxx/pgadmin.log"));//换成上传获得的InputStream
        System.out.println(is.available());//返回此输入流下一个方法调用可以不受阻塞地从此输入流读取(或跳过)的估计字节数。
//可以用is.available()>0判断
sducaicai 2014-04-15
  • 打赏
  • 举报
回复
int available() 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。 FileChannel getChannel() 返回与此文件输入流有关的唯一 FileChannel 对象,size方法去获取 也就是说,假如文件大小有5M,你读取了3M,那么调用available()的返回值就是2M。 而getChannel().size()始终是5M。 注意:如果要从网络中下载文件时,我们知道网络是不稳定的,也就是说网络下载时,read()方法是阻塞的,说明这时我们用inputStream.available()获取不到文件的总大小。 此时就需要通过 HttpURLConnection httpconn = (HttpURLConnection)url.openConnection(); httpconn.getContentLength();//获取文件长度 来获取文件的大小。

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧