Comment obtenir la taille d'un fichier en Java

En Java, vous pouvez utiliser la méthode File.lenght() pour connaitre la taille d'un fichier en octets (bytes).

La fonction File.lenght() retourne la longueur en bytes du fichier. La valeur retournée est indéfinie si le chemin spécifié est un répertoire.

Après l'obtention de la taille du fichier en bytes, vous pouvez la convertir selon vos besoins en megabytes, gigabytes; etc. Mais comment le faire ? C'est facile! Un byte (octet) est un regroupement de 8 bits et permet de représenter 256 valeurs possibles. Donc pour convertir un octets en bits, il suffit de multiplier par 8. Les autres unités (kilo, mega, giga, tera) sont placées dans une hiérarchie dont l'unité (n+1) en dessus est égale 1024 l'unité (n) comme montré ici:
  • un kilobyte (kilooctet) = 1024 bytes
  • un megabyte (megaoctet) = 1024 kilobytes
  • un gigabyte (gigaoctet) = 1024 megabytes
  • un terabyte (teraoctet) = 1024 gigabyte
Ce programme Java crée une instance de File avec comme paramètre, le chemin d'un fichier vidéo et affiche sa taille en bits, octets, kilooctets, mégaoctets, gigaoctets et téraoctet:

import java.io.File;

public class main
{
public static void main(String[] args)
{
File file =new File("C:\\test.avi");

if(file.exists()){

double bytes = file.length();
double bits = bytes * 8;
double kilobytes = bytes / 1024;
double megabytes = kilobytes / 1024;
double gigabytes = megabytes / 1024;
double terabytes = gigabytes / 1024;

System.out.println("bits : " + bits+" bits");
System.out.println("bytes : " + bytes+ " octets");
System.out.println("kilooctet : " + kilobytes+ "Ko");
System.out.println("megaoctet : " + megabytes + "Mo");
System.out.println("gigaoctet : " + gigabytes + "Go");
System.out.println("teraoctet : " + terabytes + "To");
}else{
System.out.println("Fichier innexistant");
}

}
}
L'exécution de ce code donne:

bits : 4.624187392E9 bits
bytes : 5.78023424E8 octets
kilooctet : 564476.0Ko
megaoctet : 551.24609375Mo
gigaoctet : 0.5383262634277344Go
teraoctet : 5.257092416286469E-4To
Références:
Stackoverflow: How to get file size in java ?
Wikipédia: Octet