преобразование байта в КБ, МБ, ГБ, ТБ, … с помощью RX в Android

#android #rx-java #rx-java2 #rx-android

#Android #rx-java #rx-java2 #rx-android

Вопрос:

Например, у меня есть это значение 5465881 , как я могу преобразовать его byte в КБ, МБ, ГБ, ТБ, … с RX помощью Android?

Комментарии:

1. Как это связано с RX?

Ответ №1:

Вы можете использовать android.text.format.Formatter.formatFileSize или аналогичный метод в классе форматирования:

https://developer.android.com/reference/android/text/format/Formatter.html#formatFileSize(android.content.Контекст, long)

Ответ №2:

Вы можете использовать этот метод

 public static String formatSize(long size) {
    if (size <= 0) return "0";
    final String[] units = new String[]{"B", "kB", "MB", "GB", "TB"};
    int digitGroups = (int) (Math.log10(size) / Math.log10(1024));
    return new DecimalFormat("#,##0.#").format(size / Math.pow(1024, digitGroups))   units[digitGroups];
}


formatSize(5465881) returns -> 5.2MB
  

Комментарии:

1. небезопасная функция! Crashlytics сообщил: Fatal Exception: java.lang.ArrayIndexOutOfBoundsException length=5; index=319302040