Java File length() Methode
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
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:
- Prüfen, ob die Dateigröße den Anforderungen entspricht
- Änderungen der Dateigröße überwachen
- Speicherplatzverbrauch berechnen
- Fortschritt während Datei-Upload/-Download anzeigen
Grundlegendes Anwendungsbeispiel
Beispiel 1: Dateigröße ermitteln
Beispiel
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
- Erstelle
Fileein Objekt, das auf die Zieldatei zeigt - Prüfen, ob die Datei existiert
- Wenn sie existiert, rufen Sie
length()die Methode zum Abrufen der Dateigröße auf - 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
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
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:
- Netzwerkdateisystem: Der Zugriff auf Metadaten auf einem entfernten Dateisystem kann Latenz verursachen
- Häufige Aufrufe: Wenn Sie häufig Dateigrößen abrufen müssen, sollten Sie das Zwischenspeichern der Ergebnisse in Betracht ziehen
- Echtzeitüberwachung: Für Szenarien, in denen Sie Dateigrößenänderungen in Echtzeit überwachen müssen, müssen Sie möglicherweise kombinieren
WatchServiceVerwenden 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