print sizes in human readable format (e.g., 1K 234M 2G)
java File.java类中的length()方法返回的文件长度是长以字节为单位,下面的方法是根据字节数格式化相应的其他单位(KB、MB、GB等)。
public static String getFormatSize(double size) {
double kiloByte = size/1024;
if(kiloByte < 1) {
return size + "Byte(s)";
}
double megaByte = kiloByte/1024;
if(megaByte < 1) {
BigDecimal result1 = new BigDecimal(Double.toString(kiloByte));
return result1.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "KB";
}
double gigaByte = megaByte/1024;
if(gigaByte < 1) {
BigDecimal result2 = new BigDecimal(Double.toString(megaByte));
return result2.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "MB";
}
double teraBytes = gigaByte/1024;
if(teraBytes < 1) {
BigDecimal result3 = new BigDecimal(Double.toString(gigaByte));
return result3.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "GB";
}
BigDecimal result4 = new BigDecimal(teraBytes);
return result4.setScale(2, BigDecimal.ROUND_HALF_UP).toPlainString() + "TB";
}