Java 获取文件大小

本文介绍几种方法获取文件大小,分别是java io 和 nio 以及第三方库实现。

标准的java io

首先开始一个简单实例计算文件大小,使用File.lenght()方法:

private long getFileSize(File file) {long length = file.length();return length;
}

需要注意的是,默认返回的文件大小单位是字节(byte)。文件不存在返回0L。没有权限抛异常SecurityException。

使用 java NIO

下面我们看如何使用NIO库实现,通过 FileChannel.size() 方法获取文件大小:

    Path imageFilePath = Paths.get("src/test/resources/image.jpg");FileChannel imageFileChannel = FileChannel.open(imageFilePath);long imageFileSize = imageFileChannel.size();

同样单位也是字节(byte)。

使用Apache Commons IO

下面看如何使用Apache Commons IO获取文件大小,调用FileUtils.sizeOf()方法:

    File imageFile = new File("src/test/resources/image.jpg");long size = FileUtils.sizeOf(imageFile);

注意,如果文件没有权限,该方法返回0.

文件大小转换

最后,我们看如何获得用户可读方式表示文件大小,使用Apache Commons IO – 不仅显示字节单位:

@Test
public void whenGetReadableFileSize_thenCorrect() {File imageFile = new File("src/test/resources/image.jpg");long size = getFileSize(imageFile);assertEquals("12 KB", FileUtils.byteCountToDisplaySize(size));
}

文件实际大小为12607字节,返回结果为12 KB。

总结

本文我们通过几种方式获取文件大小,并转换为用户可读方式表示。

Java 获取文件大小相关推荐

  1. java获取文件大小_Java中获取文件大小的详解及实例代码

    Java 获取文件大小 今天写代码时需要实现获取文件大小的功能,目前有两种实现方法,一种是使用File的length()方法:另外一种是使用FileInputStream的available()方法, ...

  2. java获取文件大小_Java获取文件大小

    java获取文件大小 Today we will look into different ways to get file size in Java. 今天,我们将研究使用Java获取文件大小的不同方 ...

  3. java获取文件大小的方法

    目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的ava ...

  4. java中测长度的方法,java获取文件大小的几种方法

    目前java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.io.*中fileinputstream的ava ...

  5. java获取文件大小_Java实现获取文件大小的几种方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.i ...

  6. Java获取文件大小

    一.通过length方法: 1.创建一个文件: 1 File file = new File("E:\\全部软件\\软件压缩包\\Windows7_W64_SP1_ent.iso" ...

  7. java 获取文件大小_利用百度AI OCR图片识别,Java实现PDF中的图片转换成文字

    序言:我们在读一些PDF版书籍的时候,如果PDF中不是图片,做起读书笔记的还好:如果PDF中的是图片的话,根本无法编辑,做起笔记来,还是很痛苦的.我是遇到过了.我们搞技术的,当然得自己学着解决现在的痛 ...

  8. java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望

    点关注,不迷路:持续更新Java相关技术及资讯!!! 内容源于群友投稿!记录一次阿里Java后端开发面经,分享给大家,感谢支持! 前言 秋招面试的第一家公司,也是第一次面试,真的超级紧张,从自我介绍到 ...

  9. Java获取文件大小,文件夹内文件个数的工具类

    package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java. ...

最新文章

  1. 迪杰斯特拉算法——PAT 1003
  2. Uploadify 上传插件引起Chrome崩溃解决方法
  3. Sql Server导出表结构Excel
  4. leetcode算法题--二进制中1的个数
  5. 记录docker开发hadoop,解决bug Datanode denied communication with namenode because hostname cannot be
  6. Google 在开源上的贡献
  7. 有向无环图拓扑排序(python实现)
  8. 使用说明 思迅收银系统_使用自助收银系统让消费者自助结算更便捷高效?
  9. java代码测试---插入排序和选择排序
  10. 数据中台、数据仓库和数据湖传统的区别
  11. 5G网络出现打乱传统网络范式,AI驱动+区块链能搞出啥新花样?
  12. 我的程序员之路(英语的学习)
  13. Mac墨刀怎么导出HTML,mockingbot墨刀中文使用说明.pdf
  14. HP笔记本电脑如何设置屏幕亮度
  15. 微信支付商户平台的apikey与公众平台的appsecret的区别
  16. 计算机处理器天梯,cpu天梯图2020_笔记本cpu天梯排名图2020
  17. windows无法连接到某个wifi_Windows7无法连接到网络几招解决无线网络办法
  18. NPOI导出EXCEL 合并单元格、统计列、单元格样式设置
  19. 蒙特卡罗(Monte Carlo)方法计算圆周率π
  20. 干货:机器学习模型训练全流程!

热门文章

  1. html标签logo图片怎么添加上去的
  2. UE4/UE5获取时间戳和两个时间戳的差
  3. C# 全局热键设置 与 窗体热键设置
  4. 用c语言写的新年搞笑祝福程序,新年微信红包搞笑句子_2020新年幽默微信红包祝福语...
  5. 【大数据】十、社会网络图挖掘(Girvan-Newman、拉普拉斯矩阵、Simrank)
  6. app-crawler
  7. 【2020春招美团前端面试的尴尬】日常尴尬的菜鸡时刻,面试官辛苦了。。。
  8. CocosCreator之KUOKUO带你做个加速带!起飞!
  9. 一个很不错的在线视频网站
  10. helm 中共享 tpl 写法