请选择 进入手机版 | 继续访问电脑版
阳光沙滩博客现金打赏设置邀请好友最新视频下载
+发表新主题
448975210 发布于2018-5-26 01:02 263 次浏览 10 位用户参与讨论
跳转到指定楼层
本帖的地址:https://bbs.sunofbeaches.com/thread-6303-1-1.html
版权声明:本文为作者所有,未经作者允许不得转载--->温馨提示:请加上原文地址!
我现在学习到基础篇《5、Android基础之数据存储(必修)》里面的(5、读取数据回显出来)视频,这里面使用到这个方法作为读取已经保存的文件“info.txt”如截图。但我发现会抛出 java.lang.IllegalArgumentException




最后我把语句改为:(就可以了)
File file = new File(getFilesDir().toString() + "info.txt");
FileInputStream fis = new FileInputStream(file);

请问为什么使用 this.openFileInput 会抛出 java.lang.IllegalArgumentException 异常 呢?

视频图片

视频图片

转载请说明出处,本文地址:https://bbs.sunofbeaches.com/thread-6303-1-1.html

帖子的最近访客

【大家可以通过搜索让相关资源!】【有疑问可以到提问模块提问哦!】【如果我去有资源也希望可以分享】【谢谢大家!by bbs.sunofbeaches.com】
回复

使用道具 举报

已有10人评论

黄永康 发表于 2018-5-26 01:10:36
这么晚还没有睡觉呢,勤奋!不错!

你把你的file打出来你就知道怎么回事了!
黄永康 发表于 2018-5-26 01:11:58
File file = new File(getFilesDir().toString() + "info.txt");

这里打出来的,这个getFilesDir(),指的是/data/data/包名/file/ 路径,这个路径是对于这个应用有权限访问的。要么你写到sd卡上。跟你的直接info.txt是两个不同的路径。
448975210 发表于 2018-5-26 08:36:30
黄永康 发表于 2018-5-26 01:11
File file = new File(getFilesDir().toString() + "info.txt");

这里打出来的,这个getFilesDir(),指 ...

康哥,谢谢您,昨晚发完贴然后就睡了,关了电脑,所以没回您,只能打个 意头 1.68 给您以表感谢,我现在就试试。感谢您的指导!
448975210 发表于 2018-5-26 09:44:51
黄永康 发表于 2018-5-26 01:11
File file = new File(getFilesDir().toString() + "info.txt");

这里打出来的,这个getFilesDir(),指 ...

报!原来是我粗心了,的确是路径的问题,现在解决了,学习康哥的指导!
黄永康 发表于 2018-5-26 10:33:57
448975210 发表于 2018-5-26 09:44
报!原来是我粗心了,的确是路径的问题,现在解决了,学习康哥的指导!

解决就行,谢谢啦!!!很开心
448975210 发表于 2018-5-26 23:42:35
黄永康 发表于 2018-5-26 01:10
这么晚还没有睡觉呢,勤奋!不错!

你把你的file打出来你就知道怎么回事了!

康哥,想请教个问题,我刚刚写了一个 cache 和 sd卡 的保存数据,当我想用 openFileInput 方法,想像读取 file文件夹 里面的内容一样把 cache 和 sd卡 的文件内容读取出来,但不行,我查看过 openFileInput 所读取的路径是 /data/data/包名/file/文件名,那请问想在应用里面把 cache 和 sd卡 的内容回显,应该用什么方法呢?还是没有相关的方法读取呢?不好意思,我学习有点钻牛角尖,所以有点打破沙包问到底的习惯!
黄永康 发表于 2018-5-27 08:12:34
448975210 发表于 2018-5-26 23:42
康哥,想请教个问题,我刚刚写了一个 cache 和 sd卡 的保存数据,当我想用 openFileInput 方法,想像读取 ...

你知道目录结构吗?
你说的file,是/data/data/包名/files  能过上下文可以获取getFilesDir();
而cashe是 /data/data/包名/cache 通过上下文的getCacheDir()方法获得路径;

至于sd卡的目录,每个厂商的实现可能不一样,一般来说,厂商会实现系统的接口。然后开发者通过 Environment.getExternalStorageDirectory()来获取到路径。

不过这个要注意权限,使用之前要判断是否有挂载。现在很多都不支持sd卡的,直接是内置的。而 内置的话我记得好像是sdcard2,这个你可以不用管,你直接调用api获取路径即可。
448975210 发表于 2018-5-27 08:44:05
黄永康 发表于 2018-5-27 08:12
你知道目录结构吗?
你说的file,是/data/data/包名/files  能过上下文可以获取getFilesDir();
而cashe ...

好的,谢谢康哥的指导,我研究一下,不明再来求教!
黄永康 发表于 2018-5-27 12:57:12
448975210 发表于 2018-5-27 08:44
好的,谢谢康哥的指导,我研究一下,不明再来求教!

嗯,可以可以!

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ| 《网站免责声明》|小黑屋| 阳光沙滩(sunofbeaches.com)  

Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

Powered by Discuz! X3.2( 粤ICP备14093694号 )

快速
回复
返回
列表
返回
顶部