isFile()判断是否是文件(比如:temp.txt) isDirectory()判断是否是目录(比如:/a/b/c) files[i].isFile()与 ! files[i].isDirectory() 等价,即不是目录就是文件
mkdir()是创建一个不存在的目录, createNewFile()是创建一个不存在的文件。
功能: 保存图片在本地File
代码:
package com.example.administrator.downloadimgdemo.cacheutils; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Environment; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; /** * File的构造方法 * //public File(String pathname) * //public File(String parent, String child) * //public File(File parent, String child) * Created by Administrator on 2017/5/3. */ public class FileUtils { private static final String CACHE_DIR = Environment.getExternalStorageDirectory() + "/my_caches/images";// 缓存文件夹 /** * 判断sdcard是否挂载 * * @return */ public static boolean isMounted() { String state = Environment.getExternalStorageState(); return state.equals(Environment.MEDIA_MOUNTED); } /** * 获取sdcard的根目录 * * @return */ public static String getSDCARDDir() { return Environment.getExternalStorageDirectory().getAbsolutePath(); } /** * 存储图片一 * * @param url : 图片的http网络地址 * @param data * @throws IOException */ public static void saveImage(String url, byte[] data) throws IOException { // 1. 判断是否有sdcard if (!isMounted()) { return; } // 2. 判断是否有缓存的文件夹 File dir = new File(CACHE_DIR); if (!dir.exists()) { dir.mkdirs();// 多层文件夹 } // 3. 存储图片到sdcard File file = new File(dir, getFilename(url)); FileOutputStream fos = new FileOutputStream(file); fos.write(data); fos.close(); } /** * 保存图片二 * * @param url : 图片的http网络地址 * @param bitmap * @throws IOException */ public static void saveImage(String url, Bitmap bitmap) throws IOException { // 1. 判断是否有sdcard if (!isMounted()) { return; } // 2. 判断是否有缓存的文件夹 File dir = new File(CACHE_DIR); if (!dir.exists()) { dir.mkdirs(); } // 3. 存储图片到sdcard File file = new File(dir, getFilename(url)); FileOutputStream fos = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos); } /** * 获取图片名 * * @param url * @return */ public static String getFilename(String url) { return url.substring(url.lastIndexOf("/") + 1); } /** * 读图片 * * @param url * @return */ public static Bitmap readImage(String url) { // 判断是否有sdcard if (!isMounted()) { return null; } File file = new File(CACHE_DIR, getFilename(url)); if (file.exists()) { // file->bitmap return BitmapFactory.decodeFile(file.getAbsolutePath()); } return null; } /** * 清空缓存目录 */ public void clearCaches() { File dir = new File(CACHE_DIR); File[] allfiles = dir.listFiles(); for (File file : allfiles) { file.delete(); } } }