Jaki jest najlepszy sposób na utworzenie pliku tymczasowego w systemie Android?
Czy można użyć File.createTempFile ? Dokumentacja jest bardzo niejasna.
W szczególności nie jest jasne File.createTempFile
, czy utworzone pliki tymczasowe są usuwane, jeśli w ogóle.
android
file-io
temporary-files
hpique
źródło
źródło
Odpowiedzi:
Oto co zazwyczaj robię:
Jeśli chodzi o ich usunięcie, nie jestem również pewien. Ponieważ używam tego w mojej implementacji pamięci podręcznej, ręcznie usuwam najstarsze pliki, aż rozmiar katalogu pamięci podręcznej spadnie do mojej wstępnie ustawionej wartości.
źródło
Najlepsze praktyki dotyczące wewnętrznych i zewnętrznych plików tymczasowych:
Wewnętrzna pamięć podręczna
Zewnętrzna pamięć podręczna
źródło
W przypadku tymczasowych plików wewnętrznych są to 2 opcje
1.
2)
Obie opcje dodają pliki do katalogu pamięci podręcznej aplikacji, dzięki czemu można je wyczyścić, aby zrobić miejsce w razie potrzeby, ale opcja 1 doda losową liczbę na końcu nazwy pliku, aby pliki były unikalne. Dodaje również rozszerzenie pliku, które jest
.tmp
domyślnie, ale można ustawić na dowolne za pomocą drugiego parametru. Użycie liczby losowej oznacza, że pomimo podania nazwy pliku nie pozostaje ona taka sama, jak liczba dodawana wraz z sufiksem / rozszerzeniem pliku (.tmp
domyślnie), np. Określasz swoją nazwę jakointernal_file
i wychodzi jakointernal_file1456345.tmp
. Podczas gdy możesz określić rozszerzenie, nie możesz podać liczby, która zostanie dodana. Możesz jednak znaleźć nazwę pliku, który generujefile.getName();
, ale trzeba go gdzieś przechowywać, aby można było z niego korzystać w dowolnym momencie, na przykład w celu usunięcia lub odczytania pliku. Dlatego z tego powodu wolę drugą opcję, ponieważ nazwa pliku, którą określasz, to nazwa pliku, który jest tworzony.źródło
Możesz użyć katalogu pamięci podręcznej za pomocą kontekstu.getCacheDir () .
źródło
Możesz użyć tej
File.deleteOnExit()
metodyhttps://developer.android.com/reference/java/io/File.html#deleteOnExit ()
Znajduje się tutaj https://developer.android.com/reference/java/io/File.html#createTempFile(java.lang.String , java.lang.String, java.io.File)
źródło
Zrób to w prosty sposób. Zgodnie z dokumentacją https://developer.android.com/training/data-storage/files
i usuń go po użyciu
źródło