Saber el tamaño de un archivo y convertir bytes a Kilobytes es algo muy sencillo en Java pero antes de ir al código debemos saber que (según wikipedia) Un kilobyte, cuya abreviatura correcta es kB y equivale a 1024 bytes.
Entendido esto revisemos como saber el tamaño de un archivo. Tan sencillo como crear un objeto File y aplicarle el método length()
Listo! Ahora suponiendo que el tamaño es de 10 bytes y queremos convertirlo a KB solo tenemos que aplicar una división entre 1024 ¿No? lo que nos daría 0.009765625
Y el resultado es... cero!!!! O_o ¿Qué ha pasado aquí? La cosa es que estamos diviendo entre 1024 y este número es un entero no un decimal!! Por lo tanto Java convierte el resultado a entero. Mucha atención con este detalle, la solución es dividir entre un decimal
Ahora si! Felices con nuestro 0.009765625 pero como no queremos mostrar eso debemos redondearlo "hacia arriba" tal y como lo hace windows para obtener 1 KB.
Es todo por hoy. Como siempre les dejo el ejemplo completo. No se olviden de seguirnos @JaverosAnonimos
Entendido esto revisemos como saber el tamaño de un archivo. Tan sencillo como crear un objeto File y aplicarle el método length()
String carpeta = "C:\\JaverosAnonimos.tk"; File directorio = new File (carpeta); long bytes=file.length();
Listo! Ahora suponiendo que el tamaño es de 10 bytes y queremos convertirlo a KB solo tenemos que aplicar una división entre 1024 ¿No? lo que nos daría 0.009765625
//Se divide y se imprime el resultado System.out.println( file.length()/1024);
Y el resultado es... cero!!!! O_o ¿Qué ha pasado aquí? La cosa es que estamos diviendo entre 1024 y este número es un entero no un decimal!! Por lo tanto Java convierte el resultado a entero. Mucha atención con este detalle, la solución es dividir entre un decimal
//Se divide y se imprime el resultado System.out.println( file.length()/1024.0);
Ahora si! Felices con nuestro 0.009765625 pero como no queremos mostrar eso debemos redondearlo "hacia arriba" tal y como lo hace windows para obtener 1 KB.
Math.round(Math.ceil(file.length()/1024.0));
Es todo por hoy. Como siempre les dejo el ejemplo completo. No se olviden de seguirnos @JaverosAnonimos
import java.io.File; /** * * @author @JaverosAnonimos */ class ConvertirBytes { public static void main(String [] srgs){ String carpeta = "C:\\JaverosAnonimos.tk"; File file = new File (carpeta); //Tamaño del archivo en Bytes System.out.println(file.length()); //Tamaño en KBs System.out.println( file.length()/1024.0); //Tamaño en KBs redondeado Math.round(Math.ceil(file.length()/1024.0)); } }
Publicar un comentario