我想将字符串列表存储在文件中。
我只需要创建一次,然后我将以编程方式对其进行读写。
我的问题是我应该在文件系统的哪个位置(手动)创建文件,以便它最适合读写?
谢谢。
您可以在应用程序的目录中创建文件,这样除了您的应用程序之外没有人可以访问它
getApplicationContext().getFilesDir().getAbsolutePath();
或在 SD 卡上
File externalStorage = Environment.getExternalStorageDirectory();
如果您希望其他人访问它,或者如果您的文件非常大
如果您打算手动创建文件,那么我认为 SD 卡是唯一的选择,除非您有根手机或使用模拟器。
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
//SDcard is there
File f=new File("/sdcard/YOURFILE.txt");
if (!f.exists())
{
//File created only for first time
f.createNewFile();
//create inputstream and write it to your file
OutputStream out=new FileOutputStream(f);
byte buf[]=new byte[1024];
int len;
while((len=inputStream.read(buf))>0)
out.write(buf,0,len);
out.close();
inputStream.close();
System.out.println("\nData Written");
}
else { // read/ write SECOND TIME }
}
这真的取决于。
在 SDCard 上创建文件的问题是需要特殊权限才能访问它。如果该应用程序仅供您自己使用,那就太好了。如果您想通过 Google Market Play(或现在所谓的任何名称)分发它,请知道有些人(包括我自己)倾向于查看权限并问“为什么执行 X 的应用需要获得执行 Y 的权限? ",有时会因此而无法安装该应用程序。
如果手动部分由应用程序的用户完成,请务必将其存储在 sdcard 上。这是标准的非 root 用户甚至可以访问的唯一地方。
然而,一般来说,存储数据更好的地方是 /data/data/packagename。有关详细信息,请参阅 Android 的数据存储。
沙查尔
在assets文件夹中添加文件,然后重新安装后就清楚了