Taille du fichier en Java

1. Vue d'ensemble

Dans ce rapide didacticiel, nous allons apprendre à obtenir la taille d'un fichier en Java - en utilisant Java 7, le nouveau Java 8 et Apache Common IO.

Enfin, nous obtiendrons également une représentation lisible par l'homme de la taille du fichier.

2. Java IO standard

Commençons par un exemple simple de calcul de la taille d'un fichier - en utilisant la méthode File.length () :

private long getFileSize(File file) { long length = file.length(); return length; }

Nous pouvons tester notre implémentation de manière relativement simple:

@Test public void whenGetFileSize_thenCorrect() { long expectedSize = 12607; File imageFile = new File("src/test/resources/image.jpg"); long size = getFileSize(imageFile); assertEquals(expectedSize, size); }

Notez que, par défaut, la taille des fichiers est calculée en octets.

3. Avec Java NIO

Ensuite, voyons comment utiliser la bibliothèque NIO pour obtenir la taille du fichier.

Dans l'exemple suivant, nous utiliserons l' API FileChannel.size () pour obtenir la taille d'un fichier en octets:

@Test public void whenGetFileSizeUsingNioApi_thenCorrect() throws IOException { long expectedSize = 12607; Path imageFilePath = Paths.get("src/test/resources/image.jpg"); FileChannel imageFileChannel = FileChannel.open(imageFilePath); long imageFileSize = imageFileChannel.size(); assertEquals(expectedSize, imageFileSize); } 

4. Avec Apache Commons IO

Ensuite, voyons comment obtenir la taille du fichier à l'aide d' Apache Commons IO . Dans l'exemple suivant, nous utilisons simplement FileUtils.sizeOf () pour obtenir la taille du fichier:

@Test public void whenGetFileSizeUsingApacheCommonsIO_thenCorrect() { long expectedSize = 12607; File imageFile = new File("src/test/resources/image.jpg"); long size = FileUtils.sizeOf(imageFile); assertEquals(expectedSize, size); }

Notez que, pour les fichiers à sécurité restreinte, FileUtils.sizeOf () signalera la taille comme zéro.

5. Taille lisible par l'homme

Enfin, voyons comment obtenir une représentation plus lisible par l'utilisateur de la taille du fichier à l'aide d' Apache Commons IO - pas seulement une taille en octets:

@Test public void whenGetReadableFileSize_thenCorrect() { File imageFile = new File("src/test/resources/image.jpg"); long size = getFileSize(imageFile); assertEquals("12 KB", FileUtils.byteCountToDisplaySize(size)); } 

6. Conclusion

Dans ce didacticiel, nous avons illustré des exemples d'utilisation de Java et d'Apache Commons IO pour calculer la taille d'un fichier dans le système de fichiers.

L'implémentation de ces exemples peut être trouvée dans le projet GitHub - il s'agit d'un projet basé sur Maven, il devrait donc être facile à importer et à exécuter tel quel.