写个文章以备不时之需= =
把单位为Byte的Long型文件大小格式化为KB、MB等的字符串
public class StringUtils{
public static final Long K_SIZE = 1024L;
public static final Long M_SIZE = K_SIZE * K_SIZE;
public static final Long G_SIZE = M_SIZE * K_SIZE;
public static final String B = "B";
public static final String K = "KB";
public static final String M = "MB";
public static final String G = "GB";
/**
* 将字节数据转为带单位的字符串
* @param fileSize 文件字节大小
* @return 带单位的字符串
*/
public static String formatFileSize(Long fileSize) {
String fileSizeStr = "";
if (Objects.isNull(fileSize)) {
return fileSizeStr;
}
if (fileSize == 0L) {
return "0".concat(B);
}
// 小数位数自定义
DecimalFormat df = new DecimalFormat("#.##");
if (fileSize < K_SIZE) {
fileSizeStr = df.format((double) fileSize) + B;
} else if (fileSize < M_SIZE) {
fileSizeStr = df.format((double) fileSize / K_SIZE) + K;
} else if (fileSize < G_SIZE) {
fileSizeStr = df.format((double) fileSize / M_SIZE) + M;
} else {
fileSizeStr = df.format((double) fileSize / G_SIZE) + G;
}
return fileSizeStr;
}
}
外部调用使用 StringUtils.formatFileSize(fileSize) 获得结果
例如