android file.createnewfile ioexception

本文讲述了在Android开发过程中遇到的一个常见问题:使用特殊字符作为文件名导致文件创建失败的情况。作者通过排查发现,文件名中包含冒号等特殊字符时会引发IO异常,最终给出了避免此类问题的方法。

最近在写项目的时候,文件有时候能创建成功有时候直接io异常,真是太扯淡.找了许久,终于找到原因

android 中创建文件,文件的名字中不能包含冒号啊这样的特殊字符,

只要你感觉有点特殊的字符最好都不要带..拒绝被坑..


2025-08-27 16:03:37.087 31255-31255 AndroidRuntime com.example.filereplace E FATAL EXCEPTION: main Process: com.example.filereplace, PID: 31255 java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:623) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074)  Caused by: java.io.IOException: Permission denied at java.io.UnixFileSystem.createFileExclusively0(Native Method) at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:368) at java.io.File.createNewFile(File.java:1022) at com.example.filereplace.Utils$Companion.copyResourceToFile(Utils.kt:78) at com.example.filereplace.MainActivity.setListeners$lambda-0(MainActivity.kt:184) at com.example.filereplace.MainActivity.$r8$lambda$VxaEBx93a90AJrrFIiL4HJwDcQc(Unknown Source:0) at com.example.filereplace.MainActivity$$ExternalSyntheticLambda0.onClick(Unknown Source:2) at android.view.View.performClick(View.java:8177) at android.view.View.performClickInternal(View.java:8143) at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0) at android.view.View$PerformClick.run(View.java:32286) at android.os.Handler.handleCallback(Handler.java:1027) at android.os.Handler.dispatchMessage(Handler.java:108) at android.os.Looper.loopOnce(Looper.java:298) at android.os.Looper.loop(Looper.java:408)
最新发布
08-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值