Java 创建和读取一次性创建的文件
我想在文件中存储字符串列表 我只需要创建它一次,然后我会用编程的方式在上面读写 我的问题是,我应该在文件系统中的什么位置(手动)创建文件,以便它最适合读写Java 创建和读取一次性创建的文件,java,android,Java,Android,我想在文件中存储字符串列表 我只需要创建它一次,然后我会用编程的方式在上面读写 我的问题是,我应该在文件系统中的什么位置(手动)创建文件,以便它最适合读写 谢谢。您可以在应用程序目录中创建文件,这样除了您的应用程序之外,没有人可以访问它 getApplicationContext().getFilesDir().getAbsolutePath(); 或者在sd卡上 File externalStorage = Environment.getExternalStorageDirectory();
谢谢。您可以在应用程序目录中创建文件,这样除了您的应用程序之外,没有人可以访问它
getApplicationContext().getFilesDir().getAbsolutePath();
或者在sd卡上
File externalStorage = Environment.getExternalStorageDirectory();
如果你想让其他人访问它,或者如果你的文件很大
如果您打算手动创建文件,那么我认为SD卡是唯一的选择,除非您有根手机或使用仿真器。在资产文件夹中添加文件,那么在新安装后它将很明显。这取决于具体情况 在SD卡上创建文件的问题在于,访问该文件需要特殊权限。如果这个应用程序只适合你自己,那就太酷了。如果你想通过Google MarketPlay(或现在叫它什么)发布它,请知道有些人(包括我自己)倾向于查看权限并问“为什么做X的应用程序需要做Y的权限?”有时因为它而不安装该应用程序 如果手动部分由应用程序的用户完成,请务必将其存储在SD卡上。这是唯一一个标准的地方,根本没有根用户可以访问 但是,一般来说,存储数据的更好位置是在/data/data/packagename中。有关更多详细信息,请参阅Android
Shachar如果您将文件添加到资产文件夹中,它将作为singelton添加到所有应用程序的.apk中
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 }
}