首頁 > Java > java教程 > 如何在 Java 中將位元組轉換為人類可讀的格式?

如何在 Java 中將位元組轉換為人類可讀的格式?

DDD
發布: 2024-12-02 12:09:15
原創
293 人瀏覽過

How to Convert Bytes to Human-Readable Format in Java?

如何在Java 中將位元組大小轉換為人類可讀的格式

確定位元組大小的人類可讀表示是各種計算應用程式中的常見要求。 Java 提供了一種使用以下方法完成此轉換的便利方法:

SI (1 k = 1,000)

以下方法使用國際系統將位元組大小轉換為人類可讀的格式單位(SI):

public static String humanReadableByteCountSI(long bytes) {
    if (-1000 < bytes && bytes < 1000) {
        return bytes + " B";
    }
    CharacterIterator ci = new StringCharacterIterator("kMGTPE");
    while (bytes <= -999_950 || bytes >= 999_950) {
        bytes /= 1000;
        ci.next();
    }
    return String.format("%.1f %cB", bytes / 1000.0, ci.current());
}
登入後複製

二進位(1 Ki = 1,024)

對於首選二進位前綴的場景,以下方法提供轉換:

public static String humanReadableByteCountBin(long bytes) {
    long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
    if (absB < 1024) {
        return bytes + " B";
    }
    long value = absB;
    CharacterIterator ci = new StringCharacterIterator("KMGTPE");
    for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >>> i; i -= 10) {
        value >>>= 10;
        ci.next();
    }
    value *= Long.signum(bytes);
    return String.format("%.1f %ciB", value / 1024.0, ci.current());
}
登入後複製

範例輸出

提供的程式碼片段產生以下範例輸出:

SI     BINARY
0:        0 B        0 B
27:       27 B       27 B
999:      999 B      999 B
1000:     1.0 kB     1000 B
1023:     1.0 kB     1023 B
1024:     1.0 kB    1.0 KiB
1728:     1.7 kB    1.7 KiB
110592:   110.6 kB  108.0 KiB
7077888:     7.1 MB    6.8 MiB
452984832:   453.0 MB  432.0 MiB
28991029248:    29.0 GB   27.0 GiB
1855425871872:     1.9 TB    1.7 TiB
9223372036854775807:     9.2 EB    8.0 EiB   (Long.MAX_VALUE)
登入後複製

以上是如何在 Java 中將位元組轉換為人類可讀的格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板