package com.dazhongcun.merchants.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import com.dazhongcun.merchants.application.AppApplication; import android.graphics.Bitmap; import android.os.Environment; public class FileUtils { private static final int BUFFER = 8192; // 读取文件 public static String readTextFile(File file) throws IOException { String text = null; InputStream is = null; try { is = new FileInputStream(file); text = readTextInputStream(is); ; } finally { if (is != null) { is.close(); } } return text; } // 从流中读取文件 public static String readTextInputStream(InputStream is) throws IOException { StringBuffer strbuffer = new StringBuffer(); String line; BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(is)); while ((line = reader.readLine()) != null) { strbuffer.append(line).append("\r\n"); } } finally { if (reader != null) { reader.close(); } } return strbuffer.toString(); } // 将文本内容写入文件 public static void writeTextFile(File file, String str) throws IOException { DataOutputStream out = null; try { out = new DataOutputStream(new FileOutputStream(file)); out.write(str.getBytes()); } finally { if (out != null) { out.close(); } } } // 复制文件 public static void copyFile(File sourceFile, File targetFile) throws IOException { BufferedInputStream inBuff = null; BufferedOutputStream outBuff = null; try { inBuff = new BufferedInputStream(new FileInputStream(sourceFile)); outBuff = new BufferedOutputStream(new FileOutputStream(targetFile)); byte[] buffer = new byte[BUFFER]; int length; while ((length = inBuff.read(buffer)) != -1) { outBuff.write(buffer, 0, length); } outBuff.flush(); } finally { if (inBuff != null) { inBuff.close(); } if (outBuff != null) { outBuff.close(); } } } /** * 删除单个文件 * * @param filePath * 被删除文件的文件名 * @return 文件删除成功返回true,否则返回false */ public static boolean deleteFile(String filePath) { File file = new File(filePath); if (file.isFile() && file.exists()) { return file.delete(); } return false; } /** * 删除文件夹以及目录下的文件 * * @param filePath * 被删除目录的文件路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String filePath) { boolean flag = false; // 如果filePath不以文件分隔符结尾,自动添加文件分隔符 if (!filePath.endsWith(File.separator)) { filePath = filePath + File.separator; } File dirFile = new File(filePath); if (!dirFile.exists() || !dirFile.isDirectory()) { return false; } flag = true; File[] files = dirFile.listFiles(); // 遍历删除文件夹下的所有文件(包括子目录) for (int i = 0; i < files.length; i++) { if (files[i].isFile()) { // 删除子文件 flag = deleteFile(files[i].getAbsolutePath()); if (!flag) break; } else { // 删除子目录 flag = deleteDirectory(files[i].getAbsolutePath()); if (!flag) break; } } if (!flag) return false; // 删除当前空目录 return dirFile.delete(); } /** * 根据路径删除指定的目录或文件,无论存在与否 * * @param filePath * 要删除的目录或文件 * @return 删除成功返回 true,否则返回 false。 */ public static boolean DeleteFolder(String filePath) { File file = new File(filePath); if (!file.exists()) { return false; } else { if (file.isFile()) { // 为文件时调用删除文件方法 return deleteFile(filePath); } else { // 为目录时调用删除目录方法 return deleteDirectory(filePath); } } } //图片处理 public static void deleteDir() { File dir = new File(AppApplication.mSdcardImageCamera +File.separator); if (dir == null || !dir.exists() || !dir.isDirectory()) return; for (File file : dir.listFiles()) { if (file.isFile()) file.delete(); // 删除所有文件 else if (file.isDirectory()) deleteDir(); // 递规的方式删除文件夹 } // dir.delete();// 删除目录本身 } public static boolean isFileExist(String fileName) { File file = new File(AppApplication.mSdcardImageCamera +File.separator+ fileName); file.isFile(); return file.exists(); } public static File createSDDir(String dirName) throws IOException { File dir = new File(AppApplication.mSdcardImageCamera+File.separator + dirName); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { System.out.println("createSDDir:" + dir.getAbsolutePath()); System.out.println("createSDDir:" + dir.mkdir()); } return dir; } public static void saveBitmap(Bitmap bm, String picName) { //Log.e("", "保存图片"); try { if (!isFileExist("")) { File tempf = createSDDir(""); } File f = new File(AppApplication.mSdcardImageCamera+File.separator, picName + ".JPEG"); if (f.exists()) { f.delete(); } FileOutputStream out = new FileOutputStream(f); bm.compress(Bitmap.CompressFormat.JPEG, 90, out); out.flush(); out.close(); //Log.e("", "已经保存"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void delFile(String fileName){ File file = new File(AppApplication.mSdcardImageCamera+File.separator + fileName); if(file.isFile()){ file.delete(); } file.exists(); } }