Java java.nio.file.Files createTempDirectory()-Methode
java.nio.file.Files.createTempDirectory()ist eine Hilfsmethode, die im Java NIO (New I/O)-Paket bereitgestellt wird und dazu dient, ein temporäres Verzeichnis an einem angegebenen Ort oder im Standardverzeichnis für temporäre Dateien zu erstellen. Temporäre Verzeichnisse werden normalerweise verwendet, um temporäre Dateien zu speichern, die während der Programmausführung benötigt werden, und diese Dateien werden üblicherweise nach Beendigung des Programms gelöscht.
Methodenüberladung
FilesDie Klasse bietet zwei überladenecreateTempDirectory()Methoden:
public static Path createTempDirectory(String prefix, FileAttribute<?>... attrs) public static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)
Parameterbeschreibung
dir(Optional): Ein Path-Objekt, das den Ort zum Erstellen des temporären Verzeichnisses angibt. Wenn null oder bei der ersten überladenen Methode verwendet wird, wird das Standardverzeichnis für temporäre Dateien des Systems verwendet.prefix: Die Präfixzeichenfolge für den Namen des temporären Verzeichnisses. Der generierte Verzeichnisname beginnt mit diesem Präfix.attrs(Optional): Ein optionales FileAttribute-Array, das zum Festlegen von Verzeichnisattributen (wie Berechtigungen usw.) verwendet wird.
Rückgabewert
Beide Methoden geben ein Path-Objekt zurück, das auf das neu erstellte temporäre Verzeichnis zeigt.
Anwendungsbeispiele
Beispiel 1: Ein temporäres Verzeichnis im Standard-Temporärverzeichnis erstellen
Beispiel
import java.nio.file.Files;
import java.nio.Path;
public class TempDirectoryExample1 {
public static void main(String[] args) {
try {
// Erstellt ein temporäres Verzeichnis im Standard-Temporärverzeichnis mit Präfix "myApp_"
Path tempDir = Files.createTempDirectory("myApp_");
System.out.println("Temporäres Verzeichnis erfolgreich erstellt: " + tempDir);
// Sie können es nach der Verwendung manuell löschen
// Files.delete(tempDir);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Beispiel 2: Ein temporäres Verzeichnis in einem angegebenen Verzeichnis erstellen
Beispiel
import java.nio.file.Files;
import java.nio.Path;
import java.nio.file.Paths;
public class TempDirectoryExample2 {
public static void main(String[] args) {
try {
// Speicherort zum Erstellen des Verzeichnisses angeben
Path parentDir = Paths.get("C:/temp");
// Ein temporäres Verzeichnis im angegebenen Verzeichnis mit Präfix "data_" erstellen
Path tempDir = Files.createTempDirectory(parentDir, "data_");
System.out.println("Temporäres Verzeichnis erfolgreich erstellt: " + tempDir);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Beispiel 3: Ein temporäres Verzeichnis mit bestimmten Attributen erstellen
Beispiel
import java.nio.file.Files;
import java.nio.Path;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
public class TempDirectoryExample3 {
public static void main(String[] args) {
try {
// Verzeichnisberechtigungen definieren (nur anwendbar auf Systeme, die POSIX unterstützen)
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
// Ein temporäres Verzeichnis mit bestimmten Berechtigungen erstellen
Path tempDir = Files.createTempDirectory("secure_", attr);
System.out.println("Sicheres temporäres Verzeichnis erfolgreich erstellt: " + tempDir);
} catch (IOException e) {
e.printStackTrace();
}
}
}
Hinweise
Bereinigung temporärer Verzeichnisse:
createTempDirectory()Das von der Methode erstellte temporäre Verzeichnis wird nicht automatisch gelöscht; das Programm muss es manuell löschen, wenn es nicht mehr benötigt wird, oderdeleteOnExit()die Methode verwenden, um es beim Beenden der JVM zum Löschen zu markieren.Verwendung des Präfixes: Eine gute Präfixbenennung kann helfen, den Zweck des temporären Verzeichnisses zu identifizieren; es wird empfohlen, aussagekräftige, anwendungsbezogene Namen zu verwenden.
Nebenläufigkeitssicherheit: Diese Methode stellt sicher, dass die erstellten Namen temporärer Verzeichnisse eindeutig sind, selbst in einer Multithread-Umgebung.
Ausnahmebehandlung: Die Methode kann IOException auslösen, daher müssen Ausnahmebedingungen ordnungsgemäß behandelt werden.
Plattformübergreifende Überlegungen: Dateiattribute (wie Berechtigungen) können sich auf verschiedenen Betriebssystemen unterschiedlich verhalten, insbesondere unter Windows und Nicht-POSIX-Systemen.
Praktische Anwendungsszenarien
Temporäre Verzeichnisse sind in den folgenden Szenarien besonders nützlich:
- Dateidekomprimierung: Dateien zur Verarbeitung in ein temporäres Verzeichnis extrahieren
- Datei-Upload: Vom Benutzer hochgeladene Dateien für die vorübergehende Verarbeitung speichern
- Datenverarbeitung: Temporärer Speicher, der bei der Verarbeitung großer Datenmengen verwendet wird
- Testumgebung: Einen isolierten temporären Arbeitsbereich für Unit-Tests erstellen
- Cache-System: Temporäre Cache-Daten speichern
Indem SiecreateTempDirectory()Methode: Entwickler können leicht temporäre Arbeitsbereiche erstellen, ohne sich um Namenskonflikte bei Verzeichnissen oder Probleme bei der Auswahl des Speicherorts sorgen zu müssen.
Java java.nio.file.Files