Was ist der beste Weg, um eine temporäre Datei in Android zu erstellen?
Kann File.createTempFile verwendet werden? Die Dokumentation ist sehr vage.
Insbesondere ist nicht klar, wann temporäre Dateien, mit File.createTempFile
denen erstellt wurde, gelöscht werden, wenn überhaupt.
android
file-io
temporary-files
hpique
quelle
quelle
Antworten:
Das mache ich normalerweise:
Was ihre Löschung betrifft, bin ich mir auch nicht ganz sicher. Da ich dies bei der Implementierung eines Caches verwende, lösche ich die ältesten Dateien manuell, bis die Größe des Cache-Verzeichnisses auf meinen voreingestellten Wert fällt.
quelle
Best Practices für interne und externe temporäre Dateien:
Interner Cache
Externer Cache
quelle
Für temporäre interne Dateien stehen zwei Optionen zur Verfügung
1.
2.
Beide Optionen fügen Dateien im Anwendungs-Cache-Verzeichnis hinzu und können daher gelöscht werden, um bei Bedarf Speicherplatz zu schaffen. Bei Option 1 wird jedoch am Ende des Dateinamens eine Zufallszahl hinzugefügt, um die Dateien eindeutig zu halten. Es wird auch eine Dateierweiterung hinzugefügt, die
.tmp
standardmäßig verwendet wird. Sie kann jedoch mithilfe des zweiten Parameters auf alles eingestellt werden. Die Verwendung der Zufallszahl bedeutet, dass sie trotz Angabe eines Dateinamens nicht gleich bleibt, wenn die Zahl zusammen mit dem Suffix / der Dateierweiterung (.tmp
standardmäßig) hinzugefügt wird, z. B. wenn Sie Ihren Dateinamen als angebeninternal_file
und als herauskommeninternal_file1456345.tmp
. Während Sie die Erweiterung angeben können, können Sie die hinzugefügte Nummer nicht angeben. Sie können jedoch den Dateinamen finden, über den er generiert wirdfile.getName();
Sie müssten es jedoch irgendwo speichern, damit Sie es verwenden können, wann immer Sie möchten, um beispielsweise die Datei zu löschen oder zu lesen. Aus diesem Grund bevorzuge ich die 2. Option, da der von Ihnen angegebene Dateiname der erstellte Dateiname ist.quelle
Sie können das Cache- Verzeichnis mit context.getCacheDir () verwenden .
quelle
Sie können die
File.deleteOnExit()
Methode verwendenhttps://developer.android.com/reference/java/io/File.html#deleteOnExit ()
Es wird hier verwiesen ( https://developer.android.com/reference/java/io/File.html#createTempFile(java.lang.String , java.lang.String, java.io.File)
quelle
Mach es einfach. Laut Dokumentation https://developer.android.com/training/data-storage/files
und löschen Sie es nach Gebrauch
quelle