项目场景:
项目中需要判断一个文件是否超过指定大小,如果超过了,需要将文件大小转换为最大满足单位。文章来源:https://www.toymoban.com/news/detail-692774.html
实现代码:
这里用了两种方式文章来源地址https://www.toymoban.com/news/detail-692774.html
package test;
import java.text.DecimalFormat;
public class Test3 {
/**
* 文件大小智能转换
* 会将文件大小转换为最大满足单位
* @param size(文件大小,单位为B)
* @return 文件大小
*/
public static String formatFileSize(Long size) {
String sizeName = null;
if(1024*1024 > size && size >= 1024 ) {
sizeName = String.format("%.2f",size.doubleValue()/1024) + "KB";
}else if(1024*1024*1024 > size && size >= 1024*1024 ) {
sizeName = String.format("%.2f",size.doubleValue()/(1024*1024)) + "MB";
}else if(size >= 1024*1024*1024 ) {
sizeName = String.format("%.2f",size.doubleValue()/(1024*1024*1024)) + "GB";
}else {
sizeName = size.toString() + "B";
}
return sizeName;
}
/**
* 文件大小智能转换
* 会将文件大小转换为最大满足单位
* @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];
}
public static void main(String[] args) {
System.out.println("第一种:");
System.out.println(formatFileSize(1024L));
System.out.println(formatFileSize(1048576L));
System.out.println("第二种:");
System.out.println(readableFileSize(1024L));
System.out.println(readableFileSize(1048576L));
}
}
打印结果
第一种:
1.00KB
1.00MB
第二种:
1 KB
1 MB
到了这里,关于JAVA将字节大小转换成(B,KB,MB,GB,TB)单位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!