Java File createTempFile() Methode
createTempFile()ist einjava.io.FileStatische Methode, die von der Klasse File in Java bereitgestellt wird und zum Erstellen einer temporären Datei im angegebenen Verzeichnis verwendet wird. Diese Methode ist sehr nützlich, insbesondere wenn Sie eine Datei für die temporäre Datenspeicherung benötigen; sie stellt die Eindeutigkeit des Dateinamens sicher und vermeidet Konflikte mit anderen Dateien.
Methodensyntax
createTempFile()Die Methode hat drei überladene Versionen:
public static File createTempFile(String prefix, String suffix) throws IOException
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
// Hinzugefügt in Java 7 und später
public static File createTempFile(String prefix, String suffix, File directory, FileAttribute<?>... attrs) throws IOException
public static File createTempFile(String prefix, String suffix, File directory) throws IOException
// Hinzugefügt in Java 7 und später
public static File createTempFile(String prefix, String suffix, File directory, FileAttribute<?>... attrs) throws IOException
Parameterbeschreibung
1. Grundlegende Parameter
prefix: Präfix des Dateinamens, mindestens 3 Zeichen langsuffix: Dateierweiterung (z. B. ".txt"), wenn null, wird standardmäßig ".tmp" verwendetdirectory: Verzeichnis zum Erstellen der temporären Datei; wenn null, wird das Standard-Temporärverzeichnis des Systems verwendet
2. Neuer Parameter in Java 7
attrs: Optionale Dateiattribute, die verwendet werden, um Eigenschaften wie Dateiberechtigungen festzulegen
Rückgabewert
Diese Methode liefert einFileObjekt, das die neu erstellte temporäre Datei darstellt.
Anwendungsbeispiele
Beispiel 1: Eine standardmäßige temporäre Datei erstellen
Beispiel
import java.io.File;
import java.io.IOException;
public class TempFileExample {
public static void main(String[] args) {
try {
// Eine temporäre Datei erstellen (unter Verwendung des standardmäßigen temporären Verzeichnisses)
File tempFile = File.createTempFile("example", ".tmp");
System.out.println(Temporärer Dateipfad: + tempFile.getAbsolutePath());
// Wird automatisch gelöscht, wenn das Programm beendet wird
tempFile.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
public class TempFileExample {
public static void main(String[] args) {
try {
// Eine temporäre Datei erstellen (unter Verwendung des standardmäßigen temporären Verzeichnisses)
File tempFile = File.createTempFile("example", ".tmp");
System.out.println(Temporärer Dateipfad: + tempFile.getAbsolutePath());
// Wird automatisch gelöscht, wenn das Programm beendet wird
tempFile.deleteOnExit();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Beispiel 2: Eine temporäre Datei in einem angegebenen Verzeichnis erstellen
Beispiel
import java.io.File;
import java.io.IOException;
public class TempFileExample2 {
public static void main(String[] args) {
try {
// Das Verzeichnis angeben
File dir = new File("C:/temp");
// Temporäre Datei im angegebenen Verzeichnis erstellen
File tempFile = File.createTempFile("data", ".csv", dir);
System.out.println(Temporärer Dateipfad: + tempFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
public class TempFileExample2 {
public static void main(String[] args) {
try {
// Das Verzeichnis angeben
File dir = new File("C:/temp");
// Temporäre Datei im angegebenen Verzeichnis erstellen
File tempFile = File.createTempFile("data", ".csv", dir);
System.out.println(Temporärer Dateipfad: + tempFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Beispiel 3: Festlegen von Dateiattributen in Java 7+
Beispiel
import java.io.File;
import java.io.IOException;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
public class TempFileExample3 {
public static void main(String[] args) {
try {
// Dateiberechtigungen festlegen (nur für POSIX-kompatible Systeme anwendbar)
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-r-----");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
// Eine temporäre Datei mit bestimmten Berechtigungen erstellen
File tempFile = File.createTempFile("secure", ".dat", null, attr);
System.out.println(Sicherer Pfad für temporäre Datei: + tempFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.IOException;
import java.nio.file.attribute.PosixFilePermission;
import java.nio.file.attribute.PosixFilePermissions;
import java.util.Set;
public class TempFileExample3 {
public static void main(String[] args) {
try {
// Dateiberechtigungen festlegen (nur für POSIX-kompatible Systeme anwendbar)
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rw-r-----");
FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
// Eine temporäre Datei mit bestimmten Berechtigungen erstellen
File tempFile = File.createTempFile("secure", ".dat", null, attr);
System.out.println(Sicherer Pfad für temporäre Datei: + tempFile.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
}
Wichtige Hinweise
- Eindeutigkeit des Dateinamens: Die Methode generiert automatisch einen eindeutigen Dateinamen, um Konflikte mit vorhandenen Dateien zu vermeiden
- Dateilöschung: Temporäre Dateien werden nicht automatisch gelöscht; Sie müssen die Methode aufrufen
deleteOnExit()oder sie manuell löschen - Präfixlänge: Der Präfixparameter muss mindestens 3 Zeichen lang sein, andernfalls wird eine Ausnahme ausgelöst
IllegalArgumentException - Verzeichnisberechtigungen: Stellen Sie sicher, dass Sie Schreibberechtigung für das angegebene Verzeichnis haben
- Plattformübergreifende Kompatibilität: Einstellungen für Dateiattribute können sich auf verschiedenen Betriebssystemen unterschiedlich verhalten
Best Practices
- Behandeln Sie immer potenzielle
IOException - Erwäge die Verwendung von
try-with-resourcesAnweisung zum Verwalten temporärer Dateien - Stellen Sie für sensible Daten sicher, dass geeignete Dateiberechtigungen gesetzt sind
- Definieren Sie eine klare Bereinigungsstrategie für temporäre Dateien (automatische oder manuelle Löschung)
Beispiel
// Beispiel mit try-with-resources
try {
Path tempFile = Files.createTempFile("example", ".tmp");
try (BufferedWriter writer = Files.newBufferedWriter(tempFile)) {
writer.write(Temporärer Dateiinhalt);
}
// Wird nach der Verwendung automatisch gelöscht
Files.deleteIfExists(tempFile);
} catch (IOException e) {
e.printStackTrace();
}
try {
Path tempFile = Files.createTempFile("example", ".tmp");
try (BufferedWriter writer = Files.newBufferedWriter(tempFile)) {
writer.write(Temporärer Dateiinhalt);
}
// Wird nach der Verwendung automatisch gelöscht
Files.deleteIfExists(tempFile);
} catch (IOException e) {
e.printStackTrace();
}
Durch die Verwendung dercreateTempFile()Methode können Sie temporäre Dateien in Java-Programmen sicher und effizient verwalten.
Java File