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