Heim  >  Artikel  >  Java  >  Wie konvertiere ich Bytegrößen in für Menschen lesbare Formate in Java?

Wie konvertiere ich Bytegrößen in für Menschen lesbare Formate in Java?

DDD
DDDOriginal
2024-11-26 08:08:13886Durchsuche

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

Ermitteln der Bytegröße im für Menschen lesbaren Format in Java

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.

Apache Commons Static Methods

Die Apache Commons Lang-Bibliothek stellt statische Methoden bereit Methoden zum Konvertieren von Bytegrößen:

  1. humanReadableByteCountSI: Verwendet SI-Einheiten (Basis 1000) wie „GB“, „MB“, „kB“.
  2. humanReadableByteCountBin: Verwendet binäre Einheiten (Basis 1024) wie „GiB“, „MiB“, „KiB“.

Implementierung Details

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());
}

Beispiel Ausgabe

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn