將位元組大小轉換為人類可讀格式,例如“ 1 kB 」或「1 MB」是Java 程式設計中的常見任務。雖然您可能經常為此編寫自己的實用方法,但也有可重複使用的解決方案可用。
Apache Commons Lang 函式庫提供靜態方法位元組轉換方法大小:
以下是這些方法的實作:
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 |
以上是如何在 Java 中將位元組大小轉換為人類可讀的格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!