import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
/*
* 复制指定目录下指定后缀名的文件并修改名称案例
* 将C:\\20150822\\目录下的所有.java文件,复制到C:\\java_copy\\目录下,
* 并将文件重命名为:原文件名_毫秒值.txt
*
* 1.封装初始目录:File
* 2.封装目标目标:File
* 3.获取初始目录下的所有文件和目录:listFiles
* 4.遍历数组,获取每一个File;
* 5.验证File是否是文件,并且是.java结尾:
* 是:复制;
* 否:验证是否是目录:
* 是:回到3
*
*/
public class Demo {
public static void main(String[] args) throws IOException {
File srcFile = new File("C:\\20150822");
File destFile = new File("C:\\20150822_java_copy\\");
if(!destFile.exists()){
destFile.mkdir();
}
listFile(srcFile,destFile);
System.out.println("全部复制完毕!");
}
private static void listFile(File srcFile, File destFile) throws IOException {
if(srcFile == null || destFile == null){
return ;
}
//获取原目录下的所有文件和目录
File[] fileArray = srcFile.listFiles();
if(fileArray != null){
for(File file : fileArray){
if(file.isFile() && file.getName().endsWith(".java")){
//复制
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream out = new BufferedOutputStream(
new FileOutputStream(
new File(destFile,file.getName() + "_" + new Date().getTime() + ".txt")));
int n = 0;
byte[] byteArray = new byte[1024];
while((n = in.read(byteArray)) != -1){
out.write(byteArray,0,n);
}
out.close();
in.close();
System.out.println(file.getAbsolutePath() + " 复制完毕!");
}else if(file.isDirectory()){
listFile(file,destFile);
}
}
}
}
} |
|