将图像存储为文件系统中的blob

时间:2014-03-22 15:59:46

标签: android file sqlite blob

我一直在blob字段中将图像存储在数据库中,但由于性能不佳和游标限制为1MB,我决定切换到文件系统。我很担心一些事情。我在哪里专门存储图像?只需创建一个文件夹并将其放入其中?使用文件浏览器的用户是否可以看到它?我很担心,因为如果要从用户那里删除它们,我可能会失去对所有这些内容的引用。

2 个答案:

答案 0 :(得分:3)

您可以使用Android的缓存目录,它通常位于/ Android / data / YOURPACKAGENAME / cache

使用此代码获取此路径。

  

final String cachePath =   Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())   ||                           !isExternalStorageRemovable()? getExternalCacheDir(context).getPath():                                   。context.getCacheDir()的getPath();

Displaying Bitmaps Efficiently查看Google提供的此示例,如果您的目标是从网络缓存图片,则非常有用。但是,它对用户可见,并且可以轻松删除。

如果要隐藏用户的这些文件,您只需保存没有任何路径的文件,它将位于数据/数据/ YOURPACKAGENAME内部,在用户具有超级用户访问权限之前,这对用户是隐藏的。 实施例

String FILENAME =“hello_file”; String string =“hello world!”;

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

Storage Options

答案 1 :(得分:0)

是的,该文件夹对用户可见。但如果您担心用户可以删除该文件夹而不是隐藏文件夹。要隐藏文件夹,请使用点(。)开始文件夹的名称。