2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > JAVA智能转换文件大小(B KB MB GB TB)

JAVA智能转换文件大小(B KB MB GB TB)

时间:2023-08-25 05:32:59

相关推荐

JAVA智能转换文件大小(B KB MB GB TB)

JAVA智能转换文件大小[B,KB,MB,GB,TB]

需求说明实现代码实现效果

需求说明

项目中需要判断一个文件是否超过指定大小,如果超过了,需要对其按大小进行拆分。

实现代码

/*** 文件大小智能转换* 会将文件大小转换为最大满足单位* @param size(文件大小,单位为B)* @return*/public static String readableFileSize(long size) {if (size <= 0) {return "0";}final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};int digitGroups = (int) (Math.log10(size) / Math.log10(1024));return new DecimalFormat("#,###.##").format(size / Math.pow(1024, digitGroups)) + " " + units[digitGroups];}/*** 文件大小智能转换* 会将文件大小转换为当前单位到最大满足单位(满足GB: 包含B,KB,MB,GB)* @param size(文件大小,单位为B)* @return*/public static Map<String, BigDecimal> readableFileSizeMap(long size) {Map<String,BigDecimal> map = new HashMap<>();if (size <= 0) {return map;}final String[] units = new String[]{"B", "KB", "MB", "GB", "TB"};int digitGroups = (int) (Math.log10(size) / Math.log10(1024));for(int i=0;i<=digitGroups;i++){map.put(units[i],new BigDecimal(size / Math.pow(1024, i)));}return map;}

实现效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。