public class FileSizeUtil {private static final String TAG=FileSizeUtil.class.getSimpleName();public static final int SIZETYPE_B = 1;//获取文件大小单位为B的double值public static final int SIZETYPE_KB = 2;//获取文件大小单位为KB的double值public static final int SIZETYPE_MB = 3;//获取文件大小单位为MB的double值public static final int SIZETYPE_GB = 4;//获取文件大小单位为GB的double值/*** 获取文件指定文件的指定单位的大小** @param filePath 文件路径* @param sizeType 获取大小的类型1为B、2为KB、3为MB、4为GB* @return double值的大小*/public static double getFileOrFilesSize(String filePath, int sizeType) {File file = new File(filePath);long blockSize = 0;try {if (file.isDirectory()) {blockSize = getFileSizes(file);} else {blockSize = getFileSize(file);}} catch (Exception e) {e.printStackTrace();Log.e(TAG,"获取文件大小失败!");}return FormetFileSize(blockSize, sizeType);}/*** 调用此方法自动计算指定文件或指定文件夹的大小** @param filePath 文件路径* @return 计算好的带B、KB、MB、GB的字符串*/public static String getAutoFileOrFilesSize(String filePath) {File file = new File(filePath);long blockSize = 0;try {if (file.isDirectory()) {blockSize = getFileSizes(file);} else {blockSize = getFileSize(file);}} catch (Exception e) {e.printStackTrace();Log.e(TAG,"获取文件大小失败!");}return FormetFileSize(blockSize);}/*** 获取指定文件大小** @param file* @return* @throws Exception*/private static long getFileSize(File file) throws Exception {long size = 0;if (file.exists()) {FileInputStream fis = null;fis = new FileInputStream(file);size = fis.available();} else {file.createNewFile();Log.e(TAG,"获取文件大小不存在!");}return size;}/*** 获取指定文件夹** @param f* @return* @throws Exception*/private static long getFileSizes(File f) throws Exception {long size = 0;File flist[] = f.listFiles();for (int i = 0; i < flist.length; i++) {if (flist[i].isDirectory()) {size = size + getFileSizes(flist[i]);} else {size = size + getFileSize(flist[i]);}}return size;}/*** 转换文件大小** @param fileS* @return*/private static String FormetFileSize(long fileS) {DecimalFormat df = new DecimalFormat("#.00");String fileSizeString = "";String wrongSize = "0B";if (fileS == 0) {return wrongSize;}if (fileS < 1024) {fileSizeString = df.format((double) fileS) + "B";} else if (fileS < 1048576) {fileSizeString = df.format((double) fileS / 1024) + "KB";} else if (fileS < 1073741824) {fileSizeString = df.format((double) fileS / 1048576) + "MB";} else {fileSizeString = df.format((double) fileS / 1073741824) + "GB";}return fileSizeString;}/*** 转换文件大小,指定转换的类型** @param fileS* @param sizeType* @return*/private static double FormetFileSize(long fileS, int sizeType) {DecimalFormat df = new DecimalFormat("#.00");double fileSizeLong = 0;switch (sizeType) {case SIZETYPE_B:fileSizeLong = Double.valueOf(df.format((double) fileS));break;case SIZETYPE_KB:fileSizeLong = Double.valueOf(df.format((double) fileS / 1024));break;case SIZETYPE_MB:fileSizeLong = Double.valueOf(df.format((double) fileS / 1048576));break;case SIZETYPE_GB:fileSizeLong = Double.valueOf(df.format((double) fileS / 1073741824));break;default:break;}return fileSizeLong;}
}

FileSizeUtil相关推荐

  1. java b kb mb gb 转换_java 上传文件大小转换为 GB/MB/KB/B

    1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  2. 创建一个坚固的备份系统

    在Foreach,我们拥有Synology RS815 +来存储所有备份. 这些备份来自我们网络中的不同来源,例如路由器,交换机,数据库服务器,Web服务器,应用程序日志文件,邮件服务器等等. Syn ...

  3. java 文件上传 大小_java 上传文件大小转换为 GB/MB/KB/B

    1.工具类 package cn.cmodes.common.utils; import java.io.File; import java.io.FileInputStream; import ja ...

  4. android 计算图片大小

    public class FileSizeUtil {public static final int SIZETYPE_B = 1;// 获取文件大小单位为B的double值public static ...

  5. SFTP获取文件夹内的文件名,文件大小,文件修改时间

    SFTP获取文件夹内的文件名,文件大小,文件修改时间 使用SFTP协议获取服务上的指定路径的文件夹下的所有文件名,文件大小,文件的修改时时间等. 工具类 import java.io.File; im ...

  6. Android CompressImage图片压缩工具类介绍

    CompressImage是集成图片的质量压缩,像素压缩以及基于Luban算法的图片压缩三种压缩方式的工具 功能如下: 1. 质量压缩:从质量层面进行相关压缩(原图片可通过该工具压缩至小于期望大小的图 ...

  7. java获得文件的大小和图片的长和宽 已封装!

    package cn.nahan.cd.util;import java.awt.image.BufferedImage; import java.io.File; import java.util. ...

  8. 使用el upload标签上传文件的几种常见使用场景(前台+后台)

    前言:本篇博客主要介绍ElementUI中el upload上传控件的使用,包含前后台代码. 文章目录 一.总体代码 二.使用场景 1.添加 2.修改 3.单独上传到服务器 一.总体代码 1.前端控件 ...

  9. java 上传文件大小转换为 GB/MB/KB/B

     0. 知识补充概况 如4.56就是4.6,最后一位小数大于等于6就向前进一位.  4.54就是4.5,最后一位小数小于等于4,就舍去  4.45就是4.4 4.55就是4.6最后一位小数是5的时候, ...

最新文章

  1. 深入理解JVM(二)--垃圾收集算法
  2. GfK公司将IT设备移至Equinix公司在法兰克福的数据中心
  3. Win10 | Mac 在server上统一办公
  4. echart参数设置——曲线图
  5. work php高性能,RabbitMQ之工作(Work)模式(PHP版)-Go语言中文社区
  6. .NET Core 3.0 部署在docker上运行
  7. pads 文本不能修改_斜框检测经典网络(文本)- R2CNN
  8. python自定义模块和三方模块_python基础知识8——模块1——自定义模块和第三方开源模块...
  9. python——进程基础
  10. 怎么简单使用Xftp6
  11. C++之 Eigen-3.4.0 全方位教程:Chapter02-矩阵篇
  12. ITIL 4Foundation题目-2
  13. Spark案例之流量统计(三种方法)
  14. 干货 | 拆解一个 Elasticsearch Nested 类型复杂查询问题
  15. ICS文件说明和创建(以Outlook为例)
  16. 黄土高原主要是什么树木
  17. OpenHarmony音频驱动介绍
  18. Python实现带不等式约束的NSGAII算法解决cec2021中的RCM01问题
  19. 根证书的有效期与服务器SSL证书一样长吗?
  20. Java常用类——Java教案(六)

热门文章

  1. css+nth-child+无效,CSS nth-child()和:eq()在我的代码中不起作用
  2. sql%rowcount
  3. 学校wifi覆盖解决方案
  4. 京东 java程序员_33岁的Java程序员火了!通过了京东社招月薪25K!我激动地一顿吃了四碗饭!...
  5. 平行世界真的存在吗?镜像宇宙的三个科学奥秘
  6. 钉钉api接口 Java_服务端对接钉钉三步走
  7. oracle数据库恢复aul_Oracle数据库恢复dmp
  8. 【Java基础语法】安排,写的太好了
  9. 模式识别笔记(一)概论、贝叶斯决策(参数估计、非参数估计)
  10. 2022年从零开始,用一篇博客掌握 nginx 的初级配置