バイト サイズを人間が読める形式 (「1 kB」など) に変換する" または "1 MB" は、Java プログラミングでは一般的なタスクです。このために独自のユーティリティ メソッドを作成することもよくありますが、再利用可能なソリューションも利用できます。
Apache Commons Lang ライブラリは、静的メソッドを提供します。バイトを変換するメソッドsize:
これらのメソッドの実装は次のとおりです:
シ単位:
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 サイトの他の関連記事を参照してください。