Java obter tamanho do arquivo

Hoje vamos explorar diferentes maneiras de obter o tamanho de arquivo em Java.

Java obter tamanho do arquivo

Existem diferentes classes que podemos usar para o programa java obter tamanho do arquivo. Algumas delas são;

  1. Java obter tamanho do arquivo usando a classe File
  2. Obter tamanho do arquivo em java usando a classe FileChannel
  3. Java obter tamanho do arquivo usando a classe FileUtils do Apache Commons IO

Antes de vermos um programa de exemplo para obter o tamanho do arquivo, temos um arquivo PDF de exemplo com tamanho de 2969575 bytes.

Java obter tamanho do arquivo usando a classe File

O método length() do arquivo Java retorna o tamanho do arquivo em bytes. O valor de retorno não é especificado se este arquivo denota um diretório. Portanto, antes de chamar este método para obter o tamanho do arquivo em Java, certifique-se de que o arquivo exista e não seja um diretório. Abaixo está um exemplo simples de programa Java para obter o tamanho do arquivo usando a classe 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";
	}
}

Obter o tamanho do arquivo em Java usando a classe FileChannel

Podemos usar o método size() do FileChannel para obter o tamanho do arquivo em 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();
		}
	}
}

Java obter tamanho do arquivo usando a classe FileUtils do Apache Commons IO

Se você já estiver usando o Apache Commons IO em seu projeto, então você pode usar o método sizeOf do FileUtils para obter o tamanho do arquivo em 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");
	}
}

Isso é tudo para programas de obtenção do tamanho do arquivo em Java.

Você pode conferir mais exemplos de IO em Java em nosso Repositório do GitHub.

Source:
https://www.digitalocean.com/community/tutorials/java-get-file-size