SORU
21 EYLÜL 2010, Salı


Java nasıl insan okunabilir biçime bayt boyutu dönüştürmek için?

Nasıl Java okunabilir biçime bayt boyutu dönüştürmek için? 1024 olması gerektiğini gibi "1 Kb" ve 1024*1024 olması gerektiğini "1 Mb".

Her türlü proje için bu programı yöntem yazmaktan bıktım. Bunun için Apache Commons herhangi bir statik yöntem vardır?

CEVAP
21 EYLÜL 2010, Salı


İşte bu benim (hayır ve hem de SI birimleri ve ikili üniteleri döngüler işleç):

public static String humanReadableByteCount(long bytes, boolean si) {
    int unit = si ? 1000 : 1024;
    if (bytes < unit) return bytes   " B";
    int exp = (int) (Math.log(bytes) / Math.log(unit));
    String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1)   (si ? "" : "i");
    return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre);
}

Örnek çıktı:

                              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)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • REK Roth Productions

    REK Roth Pro

    8 Ocak 2011
  • Tracy Hairston

    Tracy Hairst

    22 Mayıs 2009