Weitere aktuelle Java-Titel finden Sie bei dpunkt.
 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index


10.5.3

Temporäre Dateien


[1.2]In einigen Anwendungen müssen für bestimmten Operationen temporäre Dateien erzeugt werden, z. B. um Änderungen an einem Dokument zwischenzuspeichern, ohne das Original zu überschreiben, oder etwa um speicherintensive Sortieroperationen durchzuführen. Seit dem JDK 1.2 gibt es in der Klasse java.io.File statische Methoden, die das Anlegen von temporären Dateien auf unterschiedlichen Plattformen unterstützen:
File createTempFile(String pre, String suf, File dir)Erstellt eine temporäre Datei im Verzeichnis dir. Wird für dir der Wert null übergeben, so wird die Datei im Standardverzeichnis für temporäre Dateien der verwendeten Plattform erstellt (unter Unix üblicherweise /tmp, unter Windows z. B. c:\temp). pre muss mindestens drei Zeichen lang sein. Wird für suf null übergeben, so wird automatisch die Endung .tmp verwendet. Wird der Name der temporären Datei zu lang, weil die Werte für prefix und suf zu lang sind, dann werden die Werte automatisch vom Laufzeitsystem gekürzt.
File createTempFile(String pref, String suf)Erstellt eine temporäre Datei im Standardverzeichnis für temporäre Dateien der verwendeten Plattform. Für die Parameter pre und suf gilt dasselbe wie für die zuvor beschriebene Variante.
Der Name einer temporären Datei setzt sich aus einem Prefix, einigen generierten Zeichen und einem Suffix zusammen. Das Prefix wird vom Programmierer angegeben und muss mindestens drei Zeichen lang sein. Durch das Prefix kann die Anwendung identifiziert werden, durch die temporäre Dateien erzeugt werden. Die von der Java-Bibliothek generierten Zeichen im Dateinamen gewährleisten, dass innerhalb einer Anwendung keine zwei temporäre Dateien mit dem selben Namen vorkommen. Durch das optionale Suffix kann man z. B. das Dateiformat einer temporären Datei angeben (z. B. doc). Der Dateiname einer temporären Datei ist somit folgendermaßen aufgebaut:
  <prefix><internal><suffix>
Hierbei stellt internal die automatisch vom System erzeugten Zeichen dar. Der Ausdruck
  File temp = File.createTempFile("mail", ".tmp");
könnte z. B. eine temporäre Datei mit dem Namen
  mail43919.tmp
im Standardverzeichnis für temporäre Dateien erzeugen.

Per Voreinstellung werden temporäre Dateien nicht automatisch gelöscht, wenn die Anwendung beendet wird. Wird dies gewünscht, so muss man vor dem Beenden der Anwendung die Methode deleteOnExit() des File-Objektes aufrufen. Beim Aufruf dieser Methode merkt sich der Java-Interpreter, dass die Datei beim Beenden entfernt werden soll. Dies funktioniert allerdings nur, wenn die Anwendung auch ordnungsgemäß terminiert wird. Bei einem Absturz der Java-Anwendung würde die temporäre Datei weiterbestehen. Mit folgendem Programm kann die Erzeugung von temporären Dateien getestet werden:
  import java.io.*;
  
  public class TempFileDemo {
  
    public static void main(String args[]) throws IOException {
      PrintWriter stdout = new PrintWriter(System.out, true);
      File f = null;
      switch(args.length) {
      case 2:
        f = File.createTempFile(args[0], args[1]);
        break;
      case 3:
        f = File.createTempFile(args[0], args[1],
                                new File(args[2]));
        break;
      default:
        stdout.println(
         "Usage: java TempFileDemo prefix suffix [directory]");
        System.exit(1);
      }
      stdout.println(f.getAbsolutePath());
      f.deleteOnExit();
    }
  }
Dem Programm werden Prefix, Suffix und optional ein Verzeichnisname übergeben. Mit den übergebenen Parametern wird eine temporäre Datei erzeugt, und anschließend deren absoluter Name ausgegeben. Damit die Datei beim Beenden der Anwendung wieder entfernt wird, erfolgt zum Schluss ein Aufruf von deleteOnExit().


 Inhaltsverzeichnis   Auf Ebene Zurück   Seite Zurück   Seite Vor   Auf Ebene Vor   Eine Ebene höher   Index

Copyright © 2002 dpunkt.Verlag, Heidelberg. Alle Rechte vorbehalten.