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

Android写入应用私有目录时遭遇EROFS只读文件系统错误

问题原因与修复方案

错误根源

你代码里的核心问题出在FileWriter(channelDataFile.name)这一行:
当你仅传递文件名给FileWriter时,它默认会尝试在设备根目录(属于只读分区)创建文件,而非你指定的应用私有filesDir目录,这直接导致了EROFS (Read-only file system)异常。

修正后的代码

直接传入包含完整路径的File对象即可解决问题:

val now = LocalDateTime.now()
channelDataFile = File(applicationContext.filesDir, "channel_${now.year}-${now.month}-${now.dayOfMonth}-${now.hour}-${now.minute}-${now.second}.csv")
// 传入完整路径的File对象,而非仅文件名
val fileWriter = FileWriter(channelDataFile)
val printWriter = PrintWriter(fileWriter)

或者也可以传入文件的绝对路径:

val fileWriter = FileWriter(channelDataFile.absolutePath)

补充说明

应用私有filesDir(即/data/user/0/com.redacted.redacted/files)的读写确实不需要申请额外权限,只要确保操作的是该目录下的文件,修正后即可正常完成写入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:52:01