奇怪的FileNotFoundException
来源:互联网 发布:特朗普 做的怎么样知乎 编辑:程序博客网 时间:2024/05/23 05:08
点击打开链接 这是原地址
遇到了一个跟原地址描述一模一样的问题,所以做个记录
写了一段代码 其作用是往SDCard里面写一张照片的数据。
到也没觉的有多难,直接就用字符串拼出来路径和文件名,然后创建。但是就是会报错。代码如下:
String name = "test.jpeg";
File picFile = new File(Environment.getExternalStorageDirectory().toString()+
File.separator +"testCamera"+ File.separator + name);//直接创建从路径到文件名的File对象
try {
//FileOutputStream方法会在指定文件不存在的情况下自动创建
FileOutputStream fos = new FileOutputStream(picFile);
fos.write(data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
但是上面这段代码就是会抛出异常
java.io.FileNotFoundException: /mnt/sdcard/testCamera/test.jpeg(No such file or directory)
让我十分的奇怪
查了下资料 加上了android中的写SDCard的权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
还是不行 依然报错。郁闷坏我了,接着查,终于在Stack Overflow上找到同患难的兄弟们
他们的解决方法也让我有点奇怪
将整个文件串划分为两段,一段是目录名,一段是文件名,然后分开创建,就可以了。于是我修改代码如下
String name= "test.jpeg";
File picFileDir = new File(Environment.getExternalStorageDirectory().toString()+
File.separator +"testCamera");//仅创建路径的File对象
if(!picFileDir.exists()){
picFileDir.mkdir();//如果路径不存在就先创建路径
}
File picFile = new File(picFileDir,name);//然后再创建路径和文件的File对象
try {
//FileOutputStream方法会在指定文件不存在的情况下自动创建
FileOutputStream fos = new FileOutputStream(picFile);
fos.write(data);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- 奇怪的FileNotFoundException
- 奇怪的FileNotFoundException
- android中奇怪的FileNotFoundException
- android神奇的“FileNotFoundException”
- FileNotFoundException问题的解决
- FileNotFoundException
- filenotfoundException
- FileNotFoundException
- FileNotFoundException
- FileNotFoundException
- HTTPUrlConnection 出现 FileNotFoundException 的问题
- 关于System.IO.FileNotFoundException的记录
- java.io.FileNotFoundException异常的原因
- java 出现FileNotFoundException异常的具体情况排除
- Spark2.1.1<standalone模式下的FileNotFoundException>
- 第一章奇怪的村庄
- 奇怪的malloc问题!
- 求救!!!奇怪的现象!
- c++算数
- 网站收集
- Latex引用参考文献-BibTex的使用
- UVA 11538 Chess Queen
- Android ActionBar高级自定义、
- 奇怪的FileNotFoundException
- 邻接表与链式前向星
- 从结构struct谈到类class(基于C++实现)
- C++项目中的extern "C" {}
- 平衡二叉树(AVL)的插入、删除、查找的java实现
- Bind 搭建 DNS(应用:域名方式配置分布式集群,扩展方便)
- nginx安装
- 架构之路--多线程的设计模式之Future模式
- Seleium笔记