1、方法
//将文件大小转换为字符串 1024 转换成1kB,1024*1024 转换为MB(保留2为小数)
public static String convertFileSizeToStr(Long fileSize) {
if (fileSize <= 0) {
return "0B";
} else if (fileSize < 1024) {
return fileSize + "B";
} else if (fileSize < 1024 * 1024) {
float size = Float.parseFloat(String.valueOf(fileSize)) / 1024;
BigDecimal b = new BigDecimal(size);
// 2表示2位 ROUND_HALF_UP表明四舍五入,
size = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
return size + "KB";
} else if (fileSize < 1024 * 1024 * 1024) {
float size = Float.parseFloat(String.valueOf(fileSize)) / (1024 * 1024);
BigDecimal b = new BigDecimal(size);
// 2表示2位 ROUND_HALF_UP表明四舍五入,
size = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
return size + "MB";
} else {
float size = Float.parseFloat(String.valueOf(fileSize)) / (1024 * 1024 * 1024);
BigDecimal b = new BigDecimal(size);
// 2表示2位 ROUND_HALF_UP表明四舍五入,
size = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
return size + "GB";
}
}
2、测试
public static void main(String[] args) {
File file = new File("C:\\Users\\abc\\Desktop\\11111\\2222.txt");
System.out.println(file.length());
System.out.println(convertFileSizeToStr(file.length()));
}