我想在文件中存储字符串列表。
我需要创建它一次,之后我会以编程方式读取和写入。
我的问题是我应该在文件系统中创建文件(手动),以便最适合阅读和写作?
感谢。
答案 0 :(得分:2)
您可以在应用目录中创建文件,这样任何人都无法访问您的应用
getApplicationContext().getFilesDir().getAbsolutePath();
或在SD卡上
File externalStorage = Environment.getExternalStorageDirectory();
如果您希望其他人访问它,也许,如果您的文件非常大
如果您打算手动创建文件 ,那么除非您拥有root电话或使用模拟器,否则我认为SD卡是唯一的选择。
答案 1 :(得分:1)
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 }
}
答案 2 :(得分:0)
这真的取决于。
在SDCard上创建文件的问题是需要特殊权限才能访问它。如果该应用程序仅适用于您自己,那很酷。如果你想通过谷歌市场播放(或者这些天所称的任何东西)分发它,请知道有些人(包括我自己)倾向于查看权限并询问“为什么应用程序在做什么? X需要权限才能执行Y?“,有时候因为它而无法安装应用程序。
如果手动部件由应用程序的用户完成,请务必将其存储在SD卡上。它是标准的,非root用户甚至可以访问的唯一地方。
但是,一般来说,存储数据的更好位置是/ data / data / packagename。有关详细信息,请参阅Android的data storage。
Shachar
答案 3 :(得分:-1)
在assets文件夹中添加文件,然后在新安装后显然是