Vin*_*tti 22 android android-manifest android-emulator
我使用Android 1.5我的数据目录没有读/写权限
System.out.println("DAta can write??--->"+Environment.getDataDirectory().canWrite());
System.out.println("DAta can read??--->"+Environment.getDataDirectory().canRead());
Run Code Online (Sandbox Code Playgroud)
所以请建议我如何为数据目录提供权限.
我要做的是创建一个文件,并在模拟器的数据存储中添加一些内容,如下所示
private void writeToSDCard() {
try {
File lroot = Environment.getDataDirectory();
if (lroot.canWrite()){
File lfile = new File(lroot, "samplefile.txt");
FileWriter lfilewriter = new FileWriter(lfile);
BufferedWriter lout = new BufferedWriter(lfilewriter);
lout.write("XXXXXXXXXXXXXXXXXX");
lout.close();
}
} catch (IOException e) {
Log.e(m_cTAG, "Could not write file " + e.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
Dav*_*ebb 69
您不应该查看数据目录.这是手机存储中的系统目录 - 通常/data- 您的应用程序永远不会有权写入它.
应用程序应将文件写入的目录由Context.getFilesDir()方法返回.它会是这样的/data/data/com.yourdomain.YourApp/files.
如果要写入手机存储中的文件,请使用该Context.openFileOutput()方法.
如果你想要SDCard的路径,那么使用Environment.getExternalStorageDirectory()方法.要写入SDCard,您需要通过在Manifest中添加以下内容为应用程序提供适当的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)
如果您要写入SDCard,您还需要使用该getExternalStorageState()方法检查其状态.
如果您要存储与应用程序有关的小文件,那么这些文件可以存入手机的存储空间而不是SD卡,因此请使用Context.openFileOutput()和Context.openFileInput()方法.
所以在你的代码中考虑如下:
OutputStream os = openFileOutput("samplefile.txt", MODE_PRIVATE);
BufferedWriter lout = new BufferedWriter(new OutputStreamWriter(os));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59382 次 |
| 最近记录: |