在Java中如何将字节大小转化为KB/MB/GB等格式?

比如1024 byte,格式化为1Kb,1024kb格式化为1Mb。

kbmbgb格式化
1
197
小课
小课2022-07-01 16:05
1 个回答
1public static String humanReadableByteCountBin(long bytes) {
2    long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
3    if (absB < 1024) {
4        return bytes + " B";
5    }
6    long value = absB;
7    CharacterIterator ci = new StringCharacterIterator("KMGTPE");
8    for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >> i; i -= 10) {
9        value >>= 10;
10        ci.next();
11    }
12    value *= Long.signum(bytes);
13    return String.format("%.1f %ciB", value / 1024.0, ci.current());
14}

参考:Formatting byte size to human readable format

1
小课
小课2022-07-01 16:07
你的回答

内容