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

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

DDD
發布: 2024-11-26 08:08:13
原創
938 人瀏覽過

How to Convert Byte Sizes to Human-Readable Formats in Java?

在Java 中取得人類可讀格式的位元組大小

將位元組大小轉換為人類可讀格式,例如“ 1 kB 」或「1 MB」是Java 程式設計中的常見任務。雖然您可能經常為此編寫自己的實用方法,但也有可重複使用的解決方案可用。

Apache Commons 靜態方法

Apache Commons Lang 函式庫提供靜態方法位元組轉換方法大小:

  1. humanCountReadableByhumanCountSI 使用SI 單位(以1000為底),如“GB”、“MB”、“kB”。
  2. humanReadableByteCountBin: 使用二進位單位(基數 1024),如“GiB”, "MiB", "KiB".

實作細節

以下是這些方法的實作:

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());
}
登入後複製

二進位單位:

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());
}
登入後複製

範例輸出

範例輸出

Byte Size SI Binary
0 0 B 0 B
27 27 B 27 B
1024 1.0 kB 1.0 KiB
1728 1.7 kB 1.7 KiB
1855425871872 1.9 TB 1.7 TiB
以下表顯示使用SI 和二進位的各種位元組大小的輸出方法:

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

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