java time enums filesize

¿Hay una enumeración de Java para unidades de tamaño de archivo que sea equivalente a java.util.concurrent.TimeUnit?



enums filesize (4)

Apache commons proporciona constantes en la clase FileUtils , como

  • FileUtils.ONE_MB
  • FileUtils.ONE_GB
  • ...

fuente: https://commons.apache.org/proper/commons-io/javadocs/api-2.2/org/apache/commons/io/FileUtils.html

Su definición de KB está basada en 1024 bytes, (MB es KB² y mucho tiempo).

Siempre me ha gustado la legibilidad de las tareas que usaron TimeUnit como esta:

long timePeriodInMillis = TimeUnit.MINUTES.toMillis( 53 );

Sobre algo como:

long timePeriodInMillis = 53 * 60 * 1000;

¿Existe una enumeración equivalente que pueda usar para unidades de tamaño de archivo? Algo como

long maxBits = FilesizeUnit.MEGABYTES.toBits( 11 );



He hecho exactamente algo así hace medio año atrás solo por diversión, inspirado por TimeUnit enum.

Lo subiré a GitHub mañana. Contiene dos enumeraciones: BitUnit y ByteUnit . Ambos también admiten la conversión entre ellos. ByteUnit tiene soporte para Prefijos basados ​​en 2 así como para Prefijos basados ​​en 10. (Las constantes y métodos de Enum en ByteUnit usan la terminología IEC 80000-13 para los prefijos).

El uso se ve así:

System.out.println(BitUnit.KBIT.toKiB(16000)); System.out.println(ByteUnit.GIB.toMB(1)); System.out.println(ByteUnit.GIB.toMiB(1)); System.out.println(ByteUnit.GB.toMB(1)); System.out.println(ByteUnit.GB.toMiB(1));

... e imprime:

1953.125 1073.741824 1024.0 1000.0 953.67431640625

Para los métodos de conversión entre Bits y Bytes, ha sobrecargado los métodos para especificar un tamaño de palabra distinto de 8 bits por byte. Espero que puedas esperar hasta mañana.

EDITAR

Aquí está: https://github.com/fabian-barney/Utils

No me culpen por la estructura del directorio. Todavía no estoy familiarizado con Git todavía. :)


No, pero puedes convertirte fácilmente con:

long maxBits = 11L * 1024 * 1024 * 8;

o

long maxBits = 11L * 1000 * 1000 * 8;

dependiendo de tu definición de megabyte .