ホームページ > Java > &#&チュートリアル > Javaでバイトを人間が読める形式に変換するにはどうすればよいですか?

Javaでバイトを人間が読める形式に変換するにはどうすればよいですか?

DDD
リリース: 2024-12-02 12:09:15
オリジナル
293 人が閲覧しました

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

Java でバイト サイズを人間が判読できる形式に変換する方法

人間が判読できるバイト サイズの表現を決定することは、さまざまなコンピューティング アプリケーションで共通の要件です。 Java では、次のメソッドを使用してこの変換を実行する便利な方法が提供されています。

SI (1 k = 1,000)

次のメソッドは、国際体系を使用してバイト サイズを人間が判読できる形式に変換します。単位 (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());
}
ログイン後にコピー

バイナリ (1 Ki = 1,024)

バイナリ プレフィックスが優先されるシナリオでは、次のメソッドで変換が行われます。

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());
}
ログイン後にコピー

出力例

提供されたコード スニペットは、次の出力例を生成します。

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)
ログイン後にコピー

以上がJavaでバイトを人間が読める形式に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート