android四种FileMode

public abstract class Context {
    /** @hide */
    @IntDef(flag = true, prefix = { "MODE_" }, value = {
            MODE_PRIVATE,
            MODE_WORLD_READABLE,
            MODE_WORLD_WRITEABLE,
            MODE_APPEND,
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface FileMode {}
}
Context.getDir("",Context.MODE_PRIVATE);

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 12 中,由于安全性的考虑,应用程序访问本地文件系统的方式发生了变化。从 Android 12 开始,应用程序将无法访问 `file:///android_asset/` 目录。相反,您应该使用 `content://` URI 或将文件复制到应用程序专用目录中的 `files/` 目录。 以下是一些适用于 Android 12 的解决方案: 1. 使用 `AssetManager` 类来获取 `assets` 目录中的文件。例如,您可以使用以下代码从 `assets` 目录中读取文本文件: ``` try { InputStream inputStream = getAssets().open("filename.txt"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = bufferedReader.readLine()) != null) { // process the line } bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); } ``` 2. 将文件复制到应用程序专用目录中的 `files/` 目录,并使用 `FileProvider` 类来生成 `content://` URI。例如,您可以使用以下代码将文件复制到 `files/` 目录: ``` try { InputStream inputStream = getAssets().open("filename.txt"); FileOutputStream outputStream = openFileOutput("filename.txt", Context.MODE_PRIVATE); byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } outputStream.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } ``` 然后,您可以使用以下代码生成 `content://` URI: ``` File file = new File(getFilesDir(), "filename.txt"); Uri contentUri = FileProvider.getUriForFile(this, "your.package.name.fileprovider", file); ``` 在此示例中,`your.package.name` 应该替换为您的应用程序的包名。 请注意,如果您的应用程序需要访问其他应用程序的文件,则需要使用 `ACTION_OPEN_DOCUMENT` 或 `ACTION_CREATE_DOCUMENT` 操作来请求用户授权。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值