Quelle est la meilleure façon de créer un fichier temporaire dans Android?
File.createTempFile peut- il être utilisé? La documentation est très vague à ce sujet.
En particulier, il n'est pas clair si les fichiers temporaires créés avec File.createTempFile
sont supprimés, si jamais.
android
file-io
temporary-files
hpique
la source
la source
Réponses:
Voici ce que je fais généralement:
Quant à leur suppression, je ne suis pas sûr non plus. Étant donné que j'utilise ceci dans mon implémentation d'un cache, je supprime manuellement les fichiers les plus anciens jusqu'à ce que la taille du répertoire du cache se résume à ma valeur prédéfinie.
la source
Meilleures pratiques sur les fichiers temporaires internes et externes :
Cache interne
Cache externe
la source
Pour les fichiers internes temporaires, il existe 2 options
1.
2.
Les deux options ajoutent des fichiers dans le répertoire de cache des applications et peuvent donc être effacées pour libérer de l'espace, mais l'option 1 ajoutera un nombre aléatoire à la fin du nom de fichier pour conserver les fichiers uniques. Il ajoutera également une extension de fichier qui est
.tmp
par défaut, mais elle peut être réglée sur n'importe quoi via l'utilisation du 2ème paramètre. L'utilisation du nombre aléatoire signifie qu'en dépit de la spécification d'un nom de fichier, il ne reste pas le même que le nombre est ajouté avec l'extension / l'extension de fichier (.tmp
par défaut), par exemple, vous spécifiez votre nom de fichier commeinternal_file
et apparaît commeinternal_file1456345.tmp
. Alors que vous pouvez spécifier l'extension, vous ne pouvez pas spécifier le numéro qui est ajouté. Vous pouvez cependant trouver le nom de fichier qu'il génère viafile.getName();
, mais vous devrez stockez-le quelque part afin de pouvoir l'utiliser quand vous le souhaitez, par exemple pour supprimer ou lire le fichier. Par conséquent, pour cette raison, je préfère la 2e option car le nom de fichier que vous spécifiez est le nom de fichier qui est créé.la source
Vous pouvez utiliser le répertoire cache en utilisant context.getCacheDir () .
la source
Vous pouvez utiliser la
File.deleteOnExit()
méthodehttps://developer.android.com/reference/java/io/File.html#deleteOnExit ()
Il est référencé ici https://developer.android.com/reference/java/io/File.html#createTempFile(java.lang.String , java.lang.String, java.io.File)
la source
Faites-le en toute simplicité. Selon la documentation https://developer.android.com/training/data-storage/files
et supprimez-le après utilisation
la source