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ş:
Nasıl Java hex bir dize bir bayt dizis...
Bayt içine Java Dize dönüştürmek için ...
Nasıl Java UTF8 bayt dizileri için Diz...
Nasıl insan okunabilir forma milisaniy...
Nasıl sayısal değeri (Java) için bir b...