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

Bagaimana untuk Menukar Saiz Byte kepada Format Boleh Dibaca Manusia di Java?

DDD
DDDasal
2024-11-26 08:08:13964semak imbas

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

Mendapatkan Saiz Byte dalam Format Boleh Dibaca Manusia dalam Java

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.

Kaedah Statik Apache Commons

Perpustakaan Apache Commons Lang menyediakan statik kaedah untuk menukar bait saiz:

  1. humanReadableByteCountSI: Menggunakan unit SI (asas 1000) seperti "GB", "MB", "kB".
  2. humanReadableByteCountBin: Menggunakan unit binari (asas 1024) seperti "GiB", "MiB", "KiB".

Butiran Pelaksanaan

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

Contoh Output

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!

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