You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android如何写入TXT文件到公共存储,卸载应用后文件不被删除

前置权限配置(解决你报错的Permission DENIED问题)

因为你是个人自用无需上架,直接申请最高等级的存储权限即可:

  1. 在AndroidManifest.xml中添加权限声明:
<!-- 适配Android 11以下版本 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 适配Android 11及以上版本 -->
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
  1. 代码中动态申请权限:
  • Android 6.0-Android 10:动态申请WRITE_EXTERNAL_STORAGE权限,用户授权后即可操作
  • Android 11及以上:跳转系统设置页让用户开启「所有文件访问权限」,跳转代码示例:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    if (!Environment.isExternalStorageManager()) {
        Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
        intent.setData(Uri.parse("package:" + getPackageName()));
        startActivity(intent);
    }
}

问题1解答

  • getExternalFilesDir()返回的路径是/storage/emulated/0/Android/data/你的应用包名/files/,卸载应用时该目录会被系统删除,完全不符合你的需求,不要用。
  • 要获取公共存储下的固定专属目录,最简单的方式是先获取系统公共Documents目录,再拼接你自定义的文件夹名,即便Environment.getExternalStoragePublicDirectory被标记废弃,在所有Android版本上都可以正常运行,无需担心可用性。
  • 示例路径获取代码:
// 最终得到的路径就是 /storage/emulated/0/Documents/myapp
File targetDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "myapp");
// 如果你要存在根目录,直接写下面这行即可
// File targetDir = new File(Environment.getExternalStorageDirectory(), "myapp");

问题2解答

完整的写文件代码如下,你只需要传入要写入的String内容即可:

public void writeToPublicFile(String content) {
    // 1. 创建目标目录
    File targetDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "myapp");
    if (!targetDir.exists()) {
        targetDir.mkdirs();
    }
    // 2. 指定目标文件,文件名固定为output.txt,可自行修改
    File targetFile = new File(targetDir, "output.txt");
    // 3. 写入内容
    try {
        FileWriter writer = new FileWriter(targetFile);
        writer.write(content);
        writer.flush();
        writer.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

该代码生成的文件位于公共Documents下的myapp目录,既可以通过手机文件管理器、USB连接电脑访问,卸载应用时也不会被系统删除,完全符合你的要求。


内容的提问来源于stack exchange,提问作者SebasSBM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:36:03