Rumah >Java >javaTutorial >Bagaimana untuk Menukar Bait kepada Format Boleh Dibaca Manusia di Java?

Bagaimana untuk Menukar Bait kepada Format Boleh Dibaca Manusia di Java?

DDD
DDDasal
2024-12-02 12:09:15287semak imbas

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

Cara Menukar Saiz Byte kepada Format Boleh Dibaca Manusia dalam Java

Menentukan perwakilan saiz bait yang boleh dibaca manusia ialah keperluan biasa dalam pelbagai aplikasi pengkomputeran. Java menawarkan cara yang mudah untuk mencapai transformasi ini menggunakan kaedah berikut:

SI (1 k = 1,000)

Kaedah berikut menukar saiz bait kepada format yang boleh dibaca manusia menggunakan Sistem Antarabangsa bagi 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 (1 Ki = 1,024)

Untuk senario di mana awalan binari diutamakan, kaedah berikut menyediakan penukaran:

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());
}

Contoh Output

Coretan kod yang disediakan menjana contoh output berikut:

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)

Atas ialah kandungan terperinci Bagaimana untuk Menukar Bait kepada Format Boleh Dibaca Manusia di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn