package com.salama.android.util; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public class FileUtil { private FileUtil() { } /** * 拷贝流 * @param src 源 * @param dest 目的 * @throws IOException */ public static void copyStream(InputStream src, OutputStream dest) throws IOException { byte[] tempBuff = new byte[1024]; int iRead = 0; while(true) { iRead = src.read(tempBuff, 0, tempBuff.length); if(iRead < 0) { break; } dest.write(tempBuff, 0, iRead); dest.flush(); } } /** * 拷贝文件 * @param src 源文件 * @param dest 目的文件 * @throws IOException */ public static void copyFile(File src, File dest) throws IOException { if(!src.exists()) { return; } FileInputStream fis = null; FileOutputStream fos = null; try { fis = new FileInputStream(src); fos = new FileOutputStream(dest); copyStream(fis, fos); } finally { try { fis.close(); } catch(Exception e) { } try { fos.close(); } catch(Exception e) { } } } /** * 删除目录(递归) * @param dir 目录 */ public static void deleteDir(File dir) { if(!dir.exists()) { return; } File[] files = dir.listFiles(); if(files != null && files.length > 0) { File file = null; for(int i = 0; i < files.length; i++) { file = files[i]; if(file.isDirectory()) { deleteDir(file); } else { file.delete(); } } } dir.delete(); } /** * 拷贝目录(递归) * @param srcDir 源目录 * @param destDir 目的目录。如果不存在,则创建。 * @throws IOException */ public static void copyItemsInDir(File srcDir, File destDir) throws IOException { if(!destDir.exists()) { destDir.mkdirs(); } File[] files = srcDir.listFiles(); if(files != null && files.length > 0) { File srcFile = null; File destFile = null; for(int i = 0; i < files.length; i++) { srcFile = files[i]; destFile = new File(destDir, srcFile.getName()); if(srcFile.isDirectory()) { copyItemsInDir(srcFile, destFile); } else { copyFile(srcFile, destFile); } } } } }