Dateigröße in Java

Dateigröße in Java

1. Überblick

In diesem kurzen Tutorial erfahren Sie, wie Sie diesize of a file 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 MethodeFile.length():

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 Byte berechnet wird.

3. Mit Java NIO

Weiter - Sehen wir uns an, wie Sie mithilfe der NIO-Bibliothek die Größe der Datei ermitteln.

Im folgenden Beispiel verwenden wir die APIFileChannel.size(), um die Größe einer Datei in Byte zu ermitteln:

@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 mitApache Commons IO ermitteln. Im folgenden Beispiel verwenden wir einfachFileUtils.sizeOf(), um die Dateigröße zu erhalten:

@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, dassFileUtils.sizeOf() für Dateien mit eingeschränkter Sicherheit die Größe als Null angeben.

5. Vom Menschen lesbare Größe

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

@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 Lernprogramm werden Beispiele für die Verwendung von Java und Apache Commons IO zur Berechnung der Größe einer Datei im Dateisystem veranschaulicht.

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