我有一个应用程序,我想创建一个文本文件并在其中写入内容。我使用显式意图选择文件夹并创建文件,其中mimeType = text / plain
private void createFile(String mimeType, String fileName) {
Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType(mimeType);
intent.putExtra(Intent.EXTRA_TITLE, fileName);
startActivityForResult(intent, WRITE_REQUEST_CODE);
}
创建文件后,我使用onActivityResult写入
if (requestCode == WRITE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
Uri uri = resultData.getData();
String path = uri.getPath();
File file = new File(path);
String filename = file.getName();
try {
verifyStoragePermissions(this); //method to access storage
FileOutputStream outputStream = openFileOutput(filename,MODE_PRIVATE);
outputStream.write("Message to write".getBytes());
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我的清单中也有我的定语
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
我没有收到错误,但我的文件中没有写任何内容。有人可以帮忙吗?
答案 0 :(得分:2)
COUNT(a.id)
为您提供ACTION_CREATE_DOCUMENT
用于撰写内容。 Uri
不是文件。
Uri
用于内部存储,而不是外部存储,因此权限毫无意义
openFileOutput()
与openFileOutput()
请勿通过ACTION_CREATE_DOCUMENT
在战术上,用这个替换你的第二个代码块:
getBytes()