Java obter tamanho do arquivo

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

Java obter tamanho do arquivo

Existem diferentes classes que podemos usar para o programa Java obter o 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 exemplo de programa 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() da classe File em Java retorna o tamanho do arquivo em bytes. O valor de retorno não é especificado se este arquivo representa 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 em 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";
	}
}

Obtenha o tamanho do arquivo em Java usando a classe FileChannel

Podemos usar o método size() da 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 obtém o tamanho do arquivo usando a classe Apache Commons IO FileUtils

Se você já estiver usando o Apache Commons IO em seu projeto, 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 os programas Java de obtenção do tamanho do arquivo.

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

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