Menukar saiz bait kepada format yang boleh dibaca manusia, seperti "1 kB " atau "1 MB," ialah tugas biasa dalam pengaturcaraan Java. Walaupun anda sering menulis kaedah utiliti anda sendiri untuk ini, terdapat juga penyelesaian yang boleh digunakan semula.
Perpustakaan Apache Commons Lang menyediakan statik kaedah untuk menukar bait saiz:
Berikut ialah pelaksanaan kaedah ini:
Unit 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()); }
Perduaan Unit:
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()); }
Jadual berikut menunjukkan output untuk pelbagai saiz bait menggunakan kedua-dua kaedah SI dan Binari:
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 |
Atas ialah kandungan terperinci Bagaimana untuk Menukar Saiz Byte kepada Format Boleh Dibaca Manusia di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!