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