android sdk找不到指定的文件,Android SDK外部存储,找不到文件

我一直在为在Galaxy S4的SD卡上存储ArrayList而苦苦挣扎。对于我似乎无法找出我自己的原因,我不断收到文件未发现异常在这段代码:Android SDK外部存储,找不到文件

File file = new File(Environment.getExternalStorageDirectory(), name);

if(file.exists()) file.delete();

try{

OutputStream os = new FileOutputStream(file);

OutputStreamWriter osw = new OutputStreamWriter(os);

for(int j = 0; j < fallList.size(); j++)

osw.write(fallList.get(j));

os.close();

osw.close();

} catch (FileNotFoundException e){

Toast.makeText(getApplicationContext(),"File Not Found",Toast.LENGTH_LONG).show();

e.printStackTrace();

}

编辑:

正确添加权限后,我不再得到文件未发现异常,但是发生IOException。我注意到在设备监视一些系统错误:

04-26 13:54:15.115:d/ViewRootImpl(27953):ViewPostImeInputStage ACTION_DOWN 04-26 13:54:20.130:d/ViewRootImpl(27953): ViewPostImeInputStage ACTION_DOWN 04-26 13:54:20.270:W/System.err的(27953):产生java.io.IOException:文件描述符关闭 04-26 13:54:20.280:W/System.err的(27953):在libcore.io.Posix.writeBytes(Native Method) 04-26 13:54:20.310:W/System.err(27953):at libcore.io.Posix.write(Posix.java:223) 04-26 13 :54:20.310:W/System.err(27953):在libcore.io.BlockGuardOs.write(BlockGuardOs.java:313) 04-26 13:54:20.310:W/System.err(27953):在libcore .io.IoBridge.write(IoBridge.java:497) 04-26 13:54:20.310:W/System.err(27953):在java.io.FileOutputStream.write(FileOutputStream.java:186) 04-26 13:54:20.310:W/System.err 27953):在java.io.OutputStreamWriter.flushBytes(OutputStreamWriter.java:167) 04-26 13:54:20.310:W/System.err的(27953):在java.io.OutputStreamWriter.close(OutputStreamWriter.java: 140) 04-26 13:54:20.310:W/System.err的(27953):在com.example.med603.sharedpreffalldetect.MainActivity.toFile(MainActivity.java:142) 04-26 13:54:20.310: W/System.err(27953):at com.example.med603.sharedpreffalldetect.MainActivity.access $ 000(MainActivity.java:35) 04-26 13:54:20.310:W/System.err(27953):at com .example.med603.sharedpreffalldetect.MainActivity $ 2.onClick(MainActivity.java:73) 04-26 13:54:20.310:W/System.err(27953):at android.view.View.performClick(View.ja va:5197) 04-26 13:54:20.310:W/System.err(27953):at android.view.View $ PerformClick.run(View.java:20926) 04-26 13:54:20.310: W/System.err(27953):at android.os.Handler.handleCallback(Handler.java:739) 04-26 13:54:20.310:W/System.err(27953):at android.os.Handler。 dispatchMessage(Handler.java:95) 04-26 13:54:20.310:W/System.err(27953):at android.os.Looper.loop(Looper.java:145) 04-26 13:54: 20.310:W/System.err(27953):at android.app.ActivityThread.main(ActivityThread.java:5951) 04-26 13:54:20.320:W/System.err(27953):at java.lang。 reflect.Method.invoke(Native Method) 04-26 13:54:20.320:W/System.err(27953):at java.lang.reflect.Method.invoke(Method.java:372) 04-26 13 :54:20.320:W/System.err(27953):at com.android.internal.os.ZygoteIni t $ MethodAndArgsCaller.run(ZygoteInit.java:1400) 04-26 13:54:20.320:W/System.err(27953):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

我以前没有使用过d.log,所以我不完全知道我在寻找什么在这里。

+0

'Environment.getExternalStorageDirectory()'不会保证这将返回您的SD卡路径。检查外部安装的存储。在这里阅读更多http://developer.android.com/guide/topics/data/data-storage.html#filesExternal –

+0

您需要'WRITE_EXTERNAL_STORAGE'权限才能在那里写入。如果你认为你的设置正确,[我的这篇博客文章](https://commonsware.com/blog/2015/08/31/hey-where-did-my-permission-go.html)概述一些常见的原因,为什么你可能仍然没有这种权限。您也可以考虑编辑您的问题并发布您应该在LogCat中看到的Java堆栈跟踪。 –

+0

感谢您的链接伙计们。我会检查他们。 之后我会看到有关发布Java堆栈跟踪的信息! –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值