0

我想将字符串列表存储在文件中。

我只需要创建一次,然后我将以编程方式对其进行读写。

我的问题是我应该在文件系统的哪个位置(手动)创建文件,以便它最适合读写?

谢谢。

4

4 回答 4

2

您可以在应用程序的目录中创建文件,这样除了您的应用程序之外没有人可以访问它

getApplicationContext().getFilesDir().getAbsolutePath();

或在 SD 卡上

File externalStorage = Environment.getExternalStorageDirectory();

如果您希望其他人访问它,或者如果您的文件非常大

如果您打算手动创建文件,那么我认为 SD 卡是唯一的选择,除非您有根手机或使用模拟器。

于 2012-07-12T18:30:02.000 回答
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  }
  }
于 2012-07-12T18:40:26.757 回答
0

这真的取决于。

在 SDCard 上创建文件的问题是需要特殊权限才能访问它。如果该应用程序仅供您自己使用,那就太好了。如果您想通过 Google Market Play(或现在所谓的任何名称)分发它,请知道有些人(包括我自己)倾向于查看权限并问“为什么执行 X 的应用需要获得执行 Y 的权限? ",有时会因此而无法安装该应用程序。

如果手动部分由应用程序的用户完成,请务必将其存储在 sdcard 上。这是标准的非 root 用户甚至可以访问的唯一地方。

然而,一般来说,存储数据更好的地方是 /data/data/packagename。有关详细信息,请参阅 Android 的数据存储

沙查尔

于 2012-07-12T18:31:21.843 回答
-1

在assets文件夹中添加文件,然后重新安装后就清楚了

于 2012-07-12T18:30:50.487 回答