Hoy vamos a explorar diferentes formas de obtener el tamaño de un archivo en Java.
Obtener tamaño de archivo en Java
Existen diferentes clases que podemos utilizar para el programa de obtener tamaño de archivo en Java. Algunas de ellas son;
- Obtener tamaño de archivo en Java usando la clase
File
- Obtener tamaño de archivo en Java usando la clase
FileChannel
- Obtener tamaño de archivo en Java usando la clase
FileUtils
de Apache Commons IO
Antes de examinar un programa de ejemplo para obtener el tamaño de un archivo, tenemos un archivo pdf de muestra con un tamaño de 2969575 bytes.
Obtener tamaño de archivo en Java usando la clase File
El método length() de Java File devuelve el tamaño del archivo en bytes. El valor de retorno no está especificado si este archivo denota un directorio. Así que antes de llamar a este método para obtener el tamaño del archivo en Java, asegúrese de que el archivo exista y no sea un directorio. A continuación se muestra un programa de ejemplo simple para obtener el tamaño de un archivo en Java usando la clase File.
package com.journaldev.getfilesize;
import java.io.File;
public class JavaGetFileSize {
static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
public static void main(String[] args) {
File file = new File(FILE_NAME);
if (!file.exists() || !file.isFile()) return;
System.out.println(getFileSizeBytes(file));
System.out.println(getFileSizeKiloBytes(file));
System.out.println(getFileSizeMegaBytes(file));
}
private static String getFileSizeMegaBytes(File file) {
return (double) file.length() / (1024 * 1024) + " mb";
}
private static String getFileSizeKiloBytes(File file) {
return (double) file.length() / 1024 + " kb";
}
private static String getFileSizeBytes(File file) {
return file.length() + " bytes";
}
}
Obtener el tamaño del archivo en Java usando la clase FileChannel
Podemos usar el método size()
de FileChannel para obtener el tamaño del archivo en bytes.
package com.journaldev.getfilesize;
import java.io.IOException;
import java.nio.channels.FileChannel;
import java.nio.file.Path;
import java.nio.file.Paths;
public class JavaGetFileSizeUsingFileChannel {
static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
public static void main(String[] args) {
Path filePath = Paths.get(FILE_NAME);
FileChannel fileChannel;
try {
fileChannel = FileChannel.open(filePath);
long fileSize = fileChannel.size();
System.out.println(fileSize + " bytes");
fileChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Obtener el tamaño del archivo en Java usando la clase FileUtils
de Apache Commons IO
Si ya estás utilizando Apache Commons IO en tu proyecto, entonces puedes usar el método sizeOf de FileUtils para obtener el tamaño del archivo en Java.
package com.journaldev.getfilesize;
import java.io.File;
import org.apache.commons.io.FileUtils;
public class JavaGetFileSizeUsingApacheCommonsIO {
static final String FILE_NAME = "/Users/pankaj/Downloads/file.pdf";
public static void main(String[] args) {
File file = new File(FILE_NAME);
long fileSize = FileUtils.sizeOf(file);
System.out.println(fileSize + " bytes");
}
}
Eso es todo para los programas de obtención del tamaño del archivo en Java.
Puedes revisar más ejemplos de IO en Java en nuestro Repositorio de GitHub.
Source:
https://www.digitalocean.com/community/tutorials/java-get-file-size