新增获取磁盘主机的信息
This commit is contained in:
@@ -6,22 +6,24 @@ import java.math.RoundingMode;
|
|||||||
public class vF {
|
public class vF {
|
||||||
|
|
||||||
|
|
||||||
private static final String[] UNITS = {"B", "K", "M", "G", "T", "P"};
|
// 注意:起点是 KB,所以后面依次是 M、G、T、P
|
||||||
private static final BigDecimal KB = BigDecimal.valueOf(1024L);
|
private static final String[] UNITS = {"K", "M", "G", "T", "P"};
|
||||||
|
private static final BigDecimal UNIT = BigDecimal.valueOf(1024L);
|
||||||
|
|
||||||
public static String format(long bytes) {
|
public static String format(long kBytes) {
|
||||||
if (bytes < 0) {
|
if (kBytes < 0) {
|
||||||
throw new IllegalArgumentException("字节数不能为负数");
|
throw new IllegalArgumentException("KB 数不能为负数");
|
||||||
}
|
}
|
||||||
|
|
||||||
BigDecimal size = BigDecimal.valueOf(bytes);
|
BigDecimal size = BigDecimal.valueOf(kBytes);
|
||||||
int unitIndex = 0;
|
int unitIndex = 0;
|
||||||
|
|
||||||
while (size.compareTo(KB) >= 0 && unitIndex < UNITS.length - 1) {
|
while (size.compareTo(UNIT) >= 0 && unitIndex < UNITS.length - 1) {
|
||||||
size = size.divide(KB, 2, RoundingMode.HALF_UP);
|
size = size.divide(UNIT, 2, RoundingMode.HALF_UP);
|
||||||
unitIndex++;
|
unitIndex++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 去掉无意义的 0 和小数点
|
||||||
String num = size.stripTrailingZeros().toPlainString();
|
String num = size.stripTrailingZeros().toPlainString();
|
||||||
return num + UNITS[unitIndex];
|
return num + UNITS[unitIndex];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user