Maison > Java > javaDidacticiel > Comment convertir des octets en format lisible par l'homme en Java ?

Comment convertir des octets en format lisible par l'homme en Java ?

DDD
Libérer: 2024-12-02 12:09:15
original
293 Les gens l'ont consulté

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

Comment convertir la taille des octets en un format lisible par l'homme en Java

Déterminer la représentation lisible par l'homme de la taille des octets est une exigence courante dans diverses applications informatiques. Java offre un moyen pratique d'accomplir cette transformation en utilisant les méthodes suivantes :

SI (1 k = 1 000)

La méthode suivante convertit la taille des octets en un format lisible par l'homme à l'aide du Système international de Unités (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());
}
Copier après la connexion

Binaire (1 Ki = 1 024)

Pour les scénarios où les préfixes binaires sont préférés, la méthode suivante fournit la conversion :

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());
}
Copier après la connexion

Exemple de sortie

Les extraits de code fournis génèrent l'exemple de sortie suivant :

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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal