Konvertieren von Bytegrößen in für Menschen lesbare Formate, z. B. „1 kB „ oder „1 MB“ ist eine häufige Aufgabe in der Java-Programmierung. Während Sie hierfür oft Ihre eigenen Hilfsmethoden schreiben, stehen auch wiederverwendbare Lösungen zur Verfügung.
Die Apache Commons Lang-Bibliothek stellt statische Methoden bereit Methoden zum Konvertieren von Bytegrößen:
Hier sind die Implementierungen dieser Methoden:
SI-Einheiten:
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()); }
Binäreinheiten:
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()); }
Die folgende Tabelle zeigt die Ausgabe für verschiedene Bytegrößen unter Verwendung sowohl der SI- als auch der Binärmethode:
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 |
Das obige ist der detaillierte Inhalt vonWie konvertiere ich Bytegrößen in für Menschen lesbare Formate in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!