Если я понимаю Android Storage Options правильно, в самом крайнем случае внутреннего и внешнего хранения есть 2 директории:Android openFileInput() для кеша?
Internal Storage Files = getFilesDir()
Internal Storage Cache = getCacheDir()
External Storage Files = getExternalFilesDir()
External Storage Cache = getExternalCacheDir()
FileInputStream
и FileOutputStream
обоих каталогов внешнего хранения могут быть созданы с помощью конструктора. Например:
File file = new File(getExternalFilesDir().getAbsolutePath() + File.separator + fileName);
FileInputStream inputStream = new FileInputStream(file);
Во внутренней памяти, однако, вы можете использовать только openFileInput()
и openFileOutput()
создать FileInputStream
или FileOutputStream
. Например:
File file = new File(getExternalFilesDir().getAbsolutePath() + File.separator + fileName);
FileInputStream inputStream = openFileInput(file, Context.MODE_PRIVATE);
И так openFileInput()
и openFileOutput()
создать FileInputStream
и FileOutputStream
из внутреннего хранения файлов getFilesDir()
, я предполагаю, что конструктор FileInputStream
и FileOutputStream
единственный метод, который может быть использован для внутреннего хранения кэша getCacheDir()
. Может ли кто-то с большим знанием проверить правильность приведенной выше информации?
если это так, есть ли обходное решение для достижения 'openFileInput()' для 'getCacheDir()'? –
@HendraAnggrian: используйте новый FileInputStream (новый файл (getCacheDir(), fileName)). – CommonsWare
фантастический. еще одна проблема: можем ли мы использовать тот же метод для 'getFilesDir()'? Что-то вроде 'new FileInputStream (новый файл (getFilesDir(), fileName)). Как это отличается от 'openFileInput()'? –