具体步骤有一下几步:
1.权限
2.创建文件夹
3.创建文件
4.保存文件
权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
创建文件夹
先说明每一步的代码,最后会贴上完整的代码
如果是直接将文件放在/storage/sdcard1,这一步就可以跳过,
//保存到指定路径下/storage/sdcard1/potato
//File.separator 是默认分隔符 \
final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "potato" + File.separator;
//potato文件夹是不存在的所以必须提前创建
File folder = new File(dir);
if(!folder.exists()){
folder.mkdir();
}
如果想详细了解一下Environment.getExternalStorageDirectory()
可以看一下我的另一篇文章的开头有讲解 -> Android调用手机拍照并获得原图
注意
如果像QQ是/tencent/QQ_Image/里面存放照片,那么就要一层一层的创建文件夹,先创建tencent,再创建QQ_Image,否则会报错** open failed: ENOENT (No such file or directory)**
创建文件
File file = new File(dir + "summer" + ".jpg");
if(file.exists()){
file.delete();
}
if(!file.exists()){
file.createNewFile();//重点在这里
}
mkdir()是创建文件夹,createNewFile()创建文件。
如果使用的是mkdir()就会创建一个叫“summer.jpg”的文件夹
保存文件
FileOutputStream out = new FileOutputStream(file);
newBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
Demo
final String dir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "potato" + File.separator;
try {
File folder = new File(dir);
if(!folder.exists()){
folder.mkdir();
}
File file = new File(dir + "summer" + ".jpg");
if(file.exists()){
file.delete();
}
if(!file.exists()){
file.createNewFile();
}
FileOutputStream out = new FileOutputStream(file);
newBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
好好学习,天天向上。<( ̄oo, ̄)/
Potato_zero.jpg
网友评论