如果我正确理解Android Storage Options,至少内部和外部存储有2个目录:
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
的构造函数和{ {1}}是唯一可用于内部存储缓存FileOutputStream
的方法。有更多知识的人可以验证上述信息是否正确?
答案 0 :(得分:2)
但是,在内部存储中,您只能使用openFileInput()和openFileOutput()来创建FileInputStream或FileOutputStream。
不,您可以使用getFilesDir()
和getCacheDir()
在internal storage上创建地理位置,例如new File(getCacheDir(), fileName)
。
我假设FileInputStream和FileOutputStream的构造函数是唯一可用于内部存储缓存getCacheDir()的方法。
openFileInput()
没有getCacheDir()
直接等价物,如果这是你的意思。