Méthode createTempDirectory() de java.nio.file.Files en Java

Java File Java java.nio.file.Files


java.nio.file.Files.createTempDirectory()est une méthode utilitaire fournie dans le package Java NIO (New I/O), utilisée pour créer un répertoire temporaire dans un emplacement spécifié ou dans le répertoire de fichiers temporaires par défaut. Les répertoires temporaires sont généralement utilisés pour stocker les fichiers temporaires nécessaires pendant l'exécution du programme, et ces fichiers sont généralement supprimés après la fin du programme.

Surcharge de méthode

FilesLa classe fournit deux méthodes surchargéescreateTempDirectory()méthodes :

public static Path createTempDirectory(String prefix, FileAttribute<?>... attrs)
public static Path createTempDirectory(Path dir, String prefix, FileAttribute<?>... attrs)

Description du paramètre

  • dir(Facultatif) : Un objet Path spécifiant l'emplacement où créer le répertoire temporaire. Si null ou pour la première méthode surchargée, le répertoire de fichiers temporaires par défaut du système est utilisé.
  • prefix: La chaîne de préfixe pour le nom du répertoire temporaire. Le nom du répertoire généré commencera par ce préfixe.
  • attrs(Facultatif) : Un tableau FileAttribute facultatif utilisé pour définir les attributs du répertoire (tels que les autorisations, etc.).

Valeur de retour

Les deux méthodes retournent un objet Path pointant vers le répertoire temporaire nouvellement créé.


Exemples d'utilisation

Exemple 1 : Créer un répertoire temporaire dans le répertoire temporaire par défaut

Exemple

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class TempDirectoryExample1 {
    public static void main(String[] args) {
        try {
            // Créer un répertoire temporaire dans le répertoire temporaire par défaut avec le préfixe "myApp_"
            Path tempDir = Files.createTempDirectory("myApp_");
            System.out.println("Répertoire temporaire créé avec succès : " + tempDir);
           
            // Vous pouvez le supprimer manuellement après utilisation
            // Files.delete(tempDir);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exemple 2 : Créer un répertoire temporaire dans un répertoire spécifié

Exemple

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class TempDirectoryExample2 {
    public static void main(String[] args) {
        try {
            // Spécifier l'emplacement où créer le répertoire
            Path parentDir = Paths.get("C:/temp");
           
            // Créer un répertoire temporaire dans le répertoire spécifié avec le préfixe "data_"
            Path tempDir = Files.createTempDirectory(parentDir, "data_");
            System.out.println("Répertoire temporaire créé avec succès : " + tempDir);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exemple 3 : Créer un répertoire temporaire avec des attributs spécifiques

Exemple

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.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 {
            // Définir les permissions du répertoire (applicable uniquement aux systèmes prenant en charge POSIX)
            Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxr-x---");
            FileAttribute<Set<PosixFilePermission>> attr = PosixFilePermissions.asFileAttribute(perms);
           
            // Créer un répertoire temporaire avec des permissions spécifiques
            Path tempDir = Files.createTempDirectory("secure_", attr);
            System.out.println("Répertoire temporaire sécurisé créé avec succès : " + tempDir);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Notes

  1. Nettoyage des répertoires temporaires:createTempDirectory()Le répertoire temporaire créé par la méthode ne sera pas supprimé automatiquement ; le programme doit le supprimer manuellement lorsqu'il n'est plus nécessaire, ou utiliserdeleteOnExit()la méthode pour le marquer en vue de sa suppression lorsque la JVM se termine.

  2. Utilisation du préfixe: Un bon nommage de préfixe peut aider à identifier la finalité du répertoire temporaire ; il est recommandé d'utiliser des noms significatifs, liés à l'application.

  3. Sécurité de concurrence: Cette méthode garantit que les noms des répertoires temporaires créés sont uniques, même dans un environnement multithread.

  4. Gestion des exceptions: La méthode peut lever une IOException, donc les conditions d'exception doivent être gérées correctement.

  5. Considérations multiplateformes: Les attributs de fichier (tels que les permissions) peuvent se comporter différemment selon les systèmes d'exploitation, en particulier sous Windows et les systèmes non-POSIX.


Scénarios d'application pratiques

Les répertoires temporaires sont particulièrement utiles dans les scénarios suivants :

  1. Décompression de fichiers : Extraire les fichiers vers un répertoire temporaire pour traitement
  2. Téléversement de fichiers : Stocker les fichiers téléversés par l'utilisateur pour un traitement temporaire
  3. Traitement des données : Stockage temporaire utilisé lors du traitement de grandes quantités de données
  4. Environnement de test : Créer un espace de travail temporaire isolé pour les tests unitaires
  5. Système de cache : Stocker des données de cache temporaires

En utilisantcreateTempDirectory()méthode, les développeurs peuvent facilement créer des espaces de travail temporaires sans se soucier des conflits de nommage de répertoire ni des problèmes de sélection d'emplacement.

Java File Java java.nio.file.Files

Autres extensions