处女作,写的不好请见谅
介绍:inputUrl可以指定复制的文件夹内的所有,outputUrl指定复制到哪个文件夹内的,suffixUrl指定需要哪个文件格式的
工具类
package IO.lianxi; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * 这是一个文件批量复制的工具类 * @author Strmoz * @version 1.0 * @date 2022/1/10 3:05 * @since 1.8 */ public class Copyfile { //可以指定复制到的文件夹,指定哪个文件夹内的,指定哪个文件后缀的 public void testFile(String inputUrl,String outputUrl,String suffixUrl)throws Exception{ ArrayList arrayList = new ArrayList<>(filtFile(inputUrl,suffixUrl)); File file = new File(inputUrl); if (file.isDirectory()){ for (Object obj : arrayList) { //创建文件 FileInputStream fis = new FileInputStream(inputUrl+(String) obj); FileOutputStream fos = new FileOutputStream(outputUrl+new Date().getTime()+suffixUrl); int tata = 0; while ((tata=fis.read())!=-1){ fos.write(tata); fos.flush(); } fis.close(); fos.close(); System.out.println("复制完成。。。"); } }else{ System.out.println("无此文件夹,正在创建中。。。"); if (file.mkdirs()){ System.out.println("创建成功!"+"重新执行复制。。。"); testFile(inputUrl,outputUrl,suffixUrl); }else{ System.out.println("创建失败!"); } } } //可以指定复制到的文件夹,指定应该复制哪个文件夹内的 public static void testFile(String inputUrl,String outputUrl)throws Exception{ ArrayList arrayList = new ArrayList<>(filtFile(inputUrl)); File file = new File(inputUrl); if (file.isDirectory()){ for (Object obj : arrayList) { String SUFFIXURL = (String) obj; //创建文件 FileInputStream fis = new FileInputStream(inputUrl+(String) obj); int XIABIAO = ((String) obj).indexOf(".");//获取第一个"."下标 FileOutputStream fos = new FileOutputStream(outputUrl+new Date().getTime()+SUFFIXURL.substring(XIABIAO));//substring截取以下标“.“元素开始余下的字符 int tata = 0; while ((tata=fis.read())!=-1){ fos.write(tata); fos.flush(); } fis.close(); fos.close(); System.out.println("复制完成。。。"); } }else{ System.out.println("无此文件夹,正在创建中。。。"); if (file.mkdirs()){ System.out.println("创建成功!"+"重新执行复制。。。"); testFile(inputUrl,outputUrl); }else{ System.out.println("创建失败!"); } } } //过滤指定文件夹,指定文件格式 public static List filtFile(String inputUrl, String suffixUrl){ List<Object> objects = new ArrayList<>(); List allFiles = getAllFiles(inputUrl); for (Object allFile : allFiles) { if (allFile.toString().endsWith(suffixUrl)){ objects.add(allFile); } } return objects; } //过滤指定文件夹 public static List filtFile(String inputUrl){ File file = new File(inputUrl); if (file.isDirectory()){//存在该文件夹 List<Object> objects = new ArrayList<>(); List allFiles = getAllFiles(inputUrl); for (Object allFile : allFiles) { objects.add(allFile); } return objects; }else{//不存在文件夹 System.out.println("不存在文件夹"); return null; } } //指定输出的文件夹 public static List getAllFiles(String s){ ArrayList<File> list = new ArrayList<>(); File file = new File(s); if (file.exists()&&file.isDirectory()){ longErgodic(file,list); } return list; } //遍历所有文件 private static void longErgodic(File file, List list){ File[] fileArr = file.listFiles(); if (fileArr==null){ return; } for (File file1 : fileArr) { list.add(file1.getName()); longErgodic(file1,list); } } }
实现
public class Testiolist { public static void main(String[] args) throws Exception{ Copyfile copyfile = new Copyfile(); //copyfile.testFile("D:\\bbb\\","D:\\aaa\\"); copyfile.testFile("D:\\bbb\\","D:\\aaa\\",".jpg"); } }