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

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

DDD
リリース: 2024-11-26 08:08:13
オリジナル
934 人が閲覧しました

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

Java で人間が読める形式でバイト サイズを取得する

バイト サイズを人間が読める形式 (「1 kB」など) に変換する" または "1 MB" は、Java プログラミングでは一般的なタスクです。このために独自のユーティリティ メソッドを作成することもよくありますが、再利用可能なソリューションも利用できます。

gt;Apache Commons Static Methods

Apache Commons Lang ライブラリは、静的メソッドを提供します。バイトを変換するメソッドsize:

  1. humanReadableByteCountSI: 「GB」、「MB」、「kB」などの SI 単位 (基数 1000) を使用します。
  2. humanReadableByteCountBin: のようなバイナリ単位 (基数 1024) を使用します。 "GiB"、"MiB"、"KiB".

実装の詳細

これらのメソッドの実装は次のとおりです:

シ単位:

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

出力例

以下表は、SI とバイナリの両方を使用したさまざまなバイト サイズの出力を示しています。メソッド:

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 中国語 Web サイトの他の関連記事を参照してください。

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