拷贝指定目录下的指定文件类型的文件到指定目录
拷贝指定目录下的指定文件类型的文件到指定目录
?
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.Arrays;import java.util.Properties;public class CopyTarget {private static int num = 0;private String ext; // 后缀名private String srcDir; // 源目录private String destDir; // 目标目录private ArrayList<File> fileList = new ArrayList<File>(); // 符合条件的文件public static void main(String[] args) {System.out.println("********* 系统初始化 *********");CopyTarget ct = new CopyTarget();ct.copyFiles();System.out.println("********* 系统处理完 *********");}/** * 获取某目录中指定类型的文件 * * @param file * @throws Exception */public void acceptFiles(File file) throws Exception {if (file.isDirectory()) {// 是不是目录String[] files = file.list();// 返回该目录下所有文件及文件夹数组Arrays.sort(files); // 排序for (int i = 0; i < files.length; i++) {// 递归acceptFiles(new File(file, files[i]));}} else if (file.getPath().endsWith("." + ext)) {getFileList().add(file);// 目录/文件名System.out.println("Hit target > " + file.getParent() + "/"+ file.getName());}}public void loadConfig() {try {Properties p = new Properties();p.load(new FileInputStream(new File("copy-config.properties"))); // 得到配置文件ext = p.getProperty("ext");srcDir = p.getProperty("srcDir");destDir = p.getProperty("destDir");} catch (FileNotFoundException e) {System.out.println("没有找到任何配置文件!" + e.getMessage());} catch (IOException e) {System.out.println("配置文件有错误,请检查!" + e.getMessage());}}public void copyFiles() {try {loadConfig();// 过滤文件acceptFiles(new File(getSrcDir()));// 第一层循环是源目录下的所有文件for (int i = 0; i < this.getFileList().size(); i++) {File f = this.getFileList().get(i);File destF = new File(getDestDir() + "//" + f.getName());BufferedInputStream br = new BufferedInputStream(new FileInputStream(f));BufferedOutputStream bw = new BufferedOutputStream(new FileOutputStream(destF));byte[] bytes = new byte[br.available()];int c;while ((c = br.read(bytes)) != -1) {bw.write(bytes, 0, c);}num++;bw.flush();bw.close();br.close();System.out.println("> " + num + " 文件 " + f.getName()+ " 处理完成!");}if (num == 0)System.out.println(">> 找不到任何文件 <<");} catch (FileNotFoundException e) {System.out.println("文件没有找到!" + e.getMessage());} catch (Exception e) {System.out.println("系统错误 " + e.getMessage());} finally {System.out.println("共处理【" + this.getFileList().size() + "】个符合条件的文件");}}// ////////////////////////////////////////////////////////////////////////public void setSrcDir(String srcDir) {this.srcDir = srcDir;}public String getSrcDir() {return this.srcDir;}public void setDestDir(String destDir) {this.destDir = destDir;}public String getDestDir() {return this.destDir;}public ArrayList<File> getFileList() {return fileList;}}?