安卓向sd卡写文件出现的问题

本文详细阐述了在Android应用开发中遇到文件创建失败问题时的排查思路与解决方法,重点关注路径合法性验证及文件系统权限管理。通过实例分析,展示了如何从错误日志中发现问题根源,并提出了将文件保存至SD卡作为有效解决方案,避免了只读文件系统的限制。文章旨在帮助开发者提高问题定位能力,确保应用在不同环境下的稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安卓写文件时,一直创建不成功,没有红色错误提示,在调试过程中出现好多问题,如source not found,Class file editor source not found,Factoryorg.eclipse.jdt.ui.ClassFileEditorInputFactory returned null from createElementfor editor id=org.eclipse.jdt.ui.ClassFileEditor name=null等,始终找不到问题所在,最后调试中发现程序运行到createNewFile时,日志中产生如下警告:

java.io.IOException: open failed: EROFS (Read-only file system)---只读文件系统




问题陈述

配置文件AndroidManifest中已加入权限操作,可以生成文件夹,就是生成文件时出现上述异常(警告),可以运行,但是没有文件生成。


问题分析

能够建立文件夹则有读写权限,考虑是路径的问题不合法,所以才访问不到。

解决方案:

保存到sd卡下的sign文件夹。

原来语句:

File file = new File(Environment.getExternalStorageDirectory().getPath()+"/sign/"+filename);

修改为:

File file = new File(Environment.getExternalStorageDirectory().getPath()+"/sign/",filename);



File类构造函数: 
public File(File dir,String name)--File制定构造的新的File对象的路径,而String制定新的File名字
Public File(String path)--String,构造一个新的File使用制定的路径(文件夹)
public File(String dirPath,String name)--dirPath为指定的文件路径,name为文件的名字
public File(URI uri)--构造新的文件使用URI指定路径

总结:最终发现是自己构造函数调用错误,误以为几种构造函数可以实现相同的功能。
具体如何创建文件夹、文件见下文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值