我需要写一个函数,负责将字符串写入文件(内部内存即/internalMem/DCIM)。
我在Androidmanifest.xml文件中添加了权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
这是我的函数
public void save(View v, String text) {
if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
Log.v(TAG, "Permission is not granted!");
}
final File path = Environment.getExternalStoragePublicDirectory
( Environment.DIRECTORY_DCIM );
//Environment.DIRECTORY_PICTURES
if (!path.exists()) {
path.mkdirs();
}
final File file = new File(path, "testing.txt");
if (!file.exists()) {
Log.e("cannot create the test.txt file: ", "File write failed: ");
}
try {
file.createNewFile();
FileOutputStream fOut = new FileOutputStream(file);
OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
myOutWriter.append(text);
myOutWriter.close();
fOut.flush();
fOut.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
但是我观察到它捕获了调试消息&;permission is not granting &;,并且还得到以下错误
E/cannot create the test.txt file:: File write failed:
E/Exception: File write failed: java.io.IOException: Operation not permitted
有什么建议吗?
必须请求用户授予权限
你也应该知道在那里保存文件并不像设置路径那么简单,请阅读有关存储的文档