将字符串写入.txt文件,FileOutputStream未按预期工作

时间:2017-10-14 23:19:23

标签: java android fileoutputstream

我有一个应用程序,我想创建一个文本文件并在其中写入内容。我使用显式意图选择文件夹并创建文件,其中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" />

我没有收到错误,但我的文件中没有写任何内容。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

  1. COUNT(a.id)为您提供ACTION_CREATE_DOCUMENT用于撰写内容。 Uri不是文件

  2. Uri用于内部存储,而不是外部存储,因此权限毫无意义

  3. openFileOutput()openFileOutput()

  4. 无关
  5. 请勿通过ACTION_CREATE_DOCUMENT

  6. 撰写字符串

    在战术上,用这个替换你的第二个代码块:

    getBytes()