传智播客:复制多级文件夹

来源:互联网 发布:linux下新建文件夹 编辑:程序博客网 时间:2024/05/22 06:27
package cn.itcast_04;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FilenameFilter;import java.io.IOException;/* * 需求:复制指定目录下的指定文件,并修改后缀名。 * 指定的文件是:.java文件。 * 指定的后缀名是:.jad * 指定的目录是:jad *  * 数据源:e:\\java\\A.java * 目的地:e:\\jad\\A.jad *  * 分析: * A:封装目录 * B:获取该目录下的java文件的File数组 * C:遍历该File数组,得到每一个File对象 * D:把该File进行复制 * E:在目的地目录下改名 */public class CopyFolderDemo {public static void main(String[] args) throws IOException {// 封装目录File srcFolder = new File("e:\\java");// 封装目的地File destFolder = new File("e:\\jad");// 如果目的地目录不存在,就创建if (!destFolder.exists()) {destFolder.mkdir();}// 获取该目录下的java文件的File数组File[] fileArray = srcFolder.listFiles(new FilenameFilter() {@Overridepublic boolean accept(File dir, String name) {return new File(dir, name).isFile() && name.endsWith(".java");}});// 遍历该File数组,得到每一个File对象for (File file : fileArray) {// System.out.println(file);// 数据源:e:\java\DataTypeDemo.java// 目的地:e:\\jad\DataTypeDemo.javaString name = file.getName();File newFile = new File(destFolder, name);copyFile(file, newFile);}// 在目的地目录下改名File[] destFileArray = destFolder.listFiles();for (File destFile : destFileArray) {// System.out.println(destFile);// e:\jad\DataTypeDemo.java// e:\\jad\\DataTypeDemo.jadString name =destFile.getName(); //DataTypeDemo.javaString newName = name.replace(".java", ".jad");//DataTypeDemo.jadFile newFile = new File(destFolder,newName);destFile.renameTo(newFile);}}private static void copyFile(File file, File newFile) throws IOException {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));byte[] bys = new byte[1024];int len = 0;while ((len = bis.read(bys)) != -1) {bos.write(bys, 0, len);}bos.close();bis.close();}}

0 0