java 文件大小单位换算_获取文件大小Byte、KB、MB、GB、TB单位自动转换

获取文件大小Byte、KB、MB、GB、TB单位自动转换

下面这个是直接获取Byte(字节大小)

/**

* 获取文件的大小(Byte)

* @param file 文件

* @return 文件的大小 若文件不存在或者不是文件就返回null

*/

public static Long getByteSize(File file) {

if (file.exists() && file.isFile()) {

return file.length();

}

return null;

}

这一个是标题说的那种情况、会自动判断文件大小生成文件达到的最大单位为单位的、大小为小数点后三位、四舍五入的字符串(方便存入数据库中)

/**

* 获取文件的大小(返回到达的最高单位)

* 比如:1024Byte就不再用Byte

* 直接返回1KB

* 返回值精确到小数点后3位

* @param file 文件

* @return 文件的大小 若文件不存在或者不是文件就返回null

*/

public static String getSize(File file) {

long size = getByteSize(file);

double s = (double) size;

String unit;

if (size != -1L) {

int l;

if (size < 1024L) {

l = 0;

} else if (size < 1024L * 1024L) {

l = 1;

s = (double) size / 1024L;

} else {

for (l = 2; size >= 1024L * 1024L; l++) {

size = size / 1024L;

if ((size / 1024L) < 1024L) {

s = (double) size / 1024L;

break;

}

}

}

switch (l) {

case 0:

unit = "Byte";

break;

case 1:

unit = "KB";

break;

case 2:

unit = "MB";

break;

case 3:

unit = "GB";

break;

case 4:

//不可能也不该达到的值

unit = "TB";

break;

default:

//ER代表错误

unit = "ER";

}

String format = String.format("%.3f", s);

return format + unit;

}

return null;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值