Java File length() Methode

Java File Java File


File.length()ist in Javajava.io.Fileeine gängige Methode der Klasse, mit der die Größe einer Datei (in Bytes) ermittelt wird. Diese Methode gibt einenlongWert vom Typ, der die Bytelänge der angegebenen Datei darstellt.

Methodensyntax

public long length()

Rückgabewert

Gibt die Größe der Datei in Bytes zurück. Wenn die Datei nicht existiert oder ein Verzeichnis ist, gibt sie zurück0L。


Anwendungsfälle

length()Diese Methode ist in den folgenden Fällen besonders nützlich:

  1. Prüfen, ob die Dateigröße den Anforderungen entspricht
  2. Änderungen der Dateigröße überwachen
  3. Speicherplatzverbrauch berechnen
  4. Fortschritt während Datei-Upload/-Download anzeigen

Grundlegendes Anwendungsbeispiel

Beispiel 1: Dateigröße ermitteln

Beispiel

import java.io.File;

public class FileLengthExample {
    public static void main(String[] args) {
        File file = new File("example.txt");
       
        if (file.exists()) {
            long fileSize = file.length();
            System.out.println("Dateigröße: " + fileSize + " bytes");
        } else {
            System.out.println("Datei existiert nicht");
        }
    }
}

Code-Erklärung

  1. ErstelleFileein Objekt, das auf die Zieldatei zeigt
  2. Prüfen, ob die Datei existiert
  3. Wenn sie existiert, rufen Sielength()die Methode zum Abrufen der Dateigröße auf
  4. Informationen zur Dateigröße ausgeben

Hinweise

1. Wenn die Datei nicht existiert

Wenn die Datei nicht existiert,length()gibt die Methode zurück0anstatt eine Ausnahme auszulösen. Daher ist es am besten, zu prüfen, ob die Datei existiert, bevor Sie sie aufrufen:

Beispiel

if (file.exists()) {
    long size = file.length();
    // Dateigröße behandeln
} else {
    // Logik für die Behandlung nicht vorhandener Dateien
}

2. Wenn es sich um ein Verzeichnis handelt

Bei Verzeichnissenlength()gibt die Methode außerdem zurück0. Wenn Sie die Größe eines Verzeichnisses ermitteln möchten, müssen Sie die Größen aller Dateien unter dem Verzeichnis rekursiv berechnen.

3. Symbolische Links

Wenn die Datei ein symbolischer Link ist,length()ist der zurückgegebene Wert die Größe der tatsächlichen Datei, auf die der Link verweist.

4. Umgang mit großen Dateien

Dalength()ist der RückgabewertlongTyps kann es Dateien bis zu 2^63-1 Bytes (etwa 8EB) verarbeiten, was für die meisten Szenarien ausreicht.


Erweiterte Nutzung

Beispiel 2: Formatieren der Dateigröße

Beispiel

import java.io.File;

public class FileSizeFormatter {
    public static void main(String[] args) {
        File file = new File("largefile.zip");
        long size = file.length();
       
        System.out.println("Originalgröße: " + size + " bytes");
        System.out.println("Formatierte Größe: " + formatFileSize(size));
    }
   
    public static String formatFileSize(long size) {
        if (size < 1024) {
            return size + " B";
        }
        int exp = (int) (Math.log(size) / Math.log(1024));
        char unit = "KMGTPE".charAt(exp-1);
        return String.format("%.1f %sB", size / Math.pow(1024, exp), unit);
    }
}

Beispielausgabe

原始大小: 1500000 字节
格式化大小: 1.4 MB

Leistungsüberlegungen

File.length()Der Methodenaufruf ist leichtgewichtig, da er nur die Metadaten des Dateisystems abfragt und nicht tatsächlich den Dateiinhalt liest. In den folgenden Fällen sollten Sie jedoch darauf achten:

  1. Netzwerkdateisystem: Der Zugriff auf Metadaten auf einem entfernten Dateisystem kann Latenz verursachen
  2. Häufige Aufrufe: Wenn Sie häufig Dateigrößen abrufen müssen, sollten Sie das Zwischenspeichern der Ergebnisse in Betracht ziehen
  3. Echtzeitüberwachung: Für Szenarien, in denen Sie Dateigrößenänderungen in Echtzeit überwachen müssen, müssen Sie möglicherweise kombinierenWatchServiceVerwenden Sie

FAQ

F1: Warum gibt der Aufruf von length() für ein Verzeichnis 0 zurück?

A: In den meisten Dateisystemen belegt ein Verzeichnis selbst keinen Speicherplatz (oder belegt einen festen kleinen Platz). Die Methode `length()` ist so konzipiert, dass sie für Verzeichnisse 0 zurückgibt.

F2: Blockiert die Methode length()?

A: Im Allgemeinen nicht, es sei denn, Sie greifen auf ein Netzwerkdateisystem mit schlechten Netzwerkbedingungen zu.

F3: Wie erhält man die Gesamtgröße eines Verzeichnisses?

A: Sie müssen alle Dateien im Verzeichnis rekursiv durchlaufen und ihre `length()`-Werte akkumulieren.

Zusammenfassung

File.length()Es ist eine einfache, aber praktische Methode zum Abrufen von Dateigrößeninformationen. Bei der Verwendung müssen Sie auf Randfälle achten, z. B. ob die Datei existiert und ob es sich um ein Verzeichnis handelt. In Kombination mit anderen Dateioperationsmethoden können Sie leistungsstarke Dateiverarbeitungsfunktionen erstellen.

Java File Java File

Andere Erweiterungen