Java文件(夹)的创建、拷贝和删除方法介绍

2016-04-09 15:05:51|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:Java, 文件操作|来源:唯设编程网

文件(夹)的操作对于大多数程序员来说都是需要经常面对的,Java提供了方便的文件操作方法,本文通过一个工具类FileOperateFunc的具体实现过程介绍Java文件操作的相关方法,该工具类包含了文件和目录的创建、拷贝和删除等相关操作,同时,还通过String类的split实现了一个返回文件类型(后缀名)的方法。

1. 文件复制

/**
 * 复制文件
 * @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));
}

这个成员函数用来接受以文件全路径字符串形式的参数。

2. 目录拷贝

/**
 * 复制指定目录到新的目录
 * @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函数逐个复制目录下的文件,因为目录下面还可能有会子目录,所以该方法中使用了递归。

<123>
发表评论0条 】
网友评论(共?条评论)..
Java文件(夹)的创建、拷贝和删除方法介绍