Dateigröße in Java

1. Übersicht

In diesem kurzen Tutorial erfahren Sie, wie Sie die Größe einer Datei in Java ermitteln - mit Java 7, dem neuen Java 8 und Apache Common IO.

Schließlich erhalten wir auch eine lesbare Darstellung der Dateigröße.

2. Standard Java IO

Beginnen wir mit einem einfachen Beispiel für die Berechnung der Größe einer Datei mithilfe der File.length () -Methode:

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

Wir können unsere Implementierung relativ einfach testen:

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

Beachten Sie, dass die Dateigröße standardmäßig in Bytes berechnet wird.

3. Mit Java NIO

Weiter - sehen wir uns an, wie Sie die NIO-Bibliothek verwenden, um die Größe der Datei zu ermitteln.

Im folgenden Beispiel verwenden wir die FileChannel.size () -API , um die Größe einer Datei in Byte abzurufen :

@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. Mit Apache Commons IO

Weiter - sehen wir uns an, wie Sie die Dateigröße mit Apache Commons IO ermitteln . Im folgenden Beispiel verwenden wir einfach FileUtils.sizeOf () , um die Dateigröße zu ermitteln:

@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); }

Beachten Sie, dass FileUtils.sizeOf () für Dateien mit eingeschränkter Sicherheit die Größe als Null angibt .

5. Vom Menschen lesbare Größe

Lassen Sie uns abschließend sehen, wie Sie mit Apache Commons IO eine benutzerfreundlichere Darstellung der Dateigröße erhalten - nicht nur eine Größe in Byte:

@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. Fazit

In diesem Tutorial haben wir Beispiele für die Verwendung von Java und Apache Commons IO zum Berechnen der Größe einer Datei im Dateisystem veranschaulicht.

Die Implementierung dieser Beispiele finden Sie im GitHub-Projekt - dies ist ein Maven-basiertes Projekt, daher sollte es einfach zu importieren und auszuführen sein, wie es ist.