创建和读取一次性创建的文件

时间:2012-07-12 18:24:18

标签: java android

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

我需要创建它一次,之后我会以编程方式读取和写入。

我的问题是我应该在文件系统中创建文件(手动),以便最适合阅读和写作?

感谢。

4 个答案:

答案 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文件夹中添加文件,然后在新安装后显然是