2016-04-09 15:05:51|?次阅读|上传:wustguangh【已有?条评论】发表评论
关键词:Java, 文件操作|来源:唯设编程网
文件(夹)的操作对于大多数程序员来说都是需要经常面对的,Java提供了方便的文件操作方法,本文通过一个工具类FileOperateFunc的具体实现过程介绍Java文件操作的相关方法,该工具类包含了文件和目录的创建、拷贝和删除等相关操作,同时,还通过String类的split实现了一个返回文件类型(后缀名)的方法。
/** * 复制文件 * @param inputStream * @param outputStream * @throws IOException */ public static void copyFile(InputStream inputStream, OutputStream outputStream) throws IOException { //---copy 1K bytes at a time--- byte[] buffer = new byte[1024]; int length; while ((length = inputStream.read(buffer)) > 0) { outputStream.write(buffer, 0, length); } inputStream.close(); outputStream.close(); }
Java文件复制使用输入流(InputStream)/输出流(OutputStream)可以很方便的实现,其中的buffer数组是设置的缓冲区,可以根据实际情况进行调整。为了使用方便,我们还可以定义一个重载的成员函数,如下:
/** * 复制文件 * @param srcPath * 源文件的路径 * @param desPath * 目标文件的路径 */ public static void copyFile(String srcPath, String desPath) throws IOException { copyFile(new FileInputStream(srcPath),new FileOutputStream(desPath)); }
这个成员函数用来接受以文件全路径字符串形式的参数。
/** * 复制指定目录到新的目录 * @param srcDIR * 包含目录一起复制 * @param desDIR * 原目录的内容拷贝到该目录下,会递归拷贝子目录 */ public static void copyDIR(String srcDIR,String desDIR) throws IOException { File fDesDIR = new File(desDIR); //如果指定目录不存在,则创建 if(!fDesDIR.exists()) fDesDIR.mkdirs(); // get file list where the path has File fSrcDIR = new File(srcDIR); //File.cr // get the folder list File[] array = fSrcDIR.listFiles(); for (int i = 0; i < array.length; i++) { if (array[i].isFile()) { Log.w("copyDIR-->FILE", array[i].getAbsolutePath()); copyFile(array[i].getPath(), desDIR + File.separator + array[i].getName()); } else if (array[i].isDirectory()) { Log.w("copyDIR-->PATH", array[i].getAbsolutePath()); copyDIR(array[i].getPath(), desDIR + File.separator + array[i].getName()); } } }
该目录拷贝成员函数实现的流程是:首先检测目标位置对应目录是否存在,如果不存在,则创建对应目录,再调用copyFile函数逐个复制目录下的文件,因为目录下面还可能有会子目录,所以该方法中使用了递归。