import java.io.*; public class Section2CopyMultistageFolder { public static void main(String[] args) throws IOException { CopyFolder(); } public static void CopyFolder() throws IOException { //创建数据源对象 File StartFolder = new File("D:\\a"); //创建目的地数据源对象 File EndFolder = new File("idea_test\\"); CopyFile(StartFolder, EndFolder); } private static void CopyFile(File StartFolder, File EndFolder) throws IOException { //判断数据如果是文件则复制。目录则创建,递归调用此方法 if (StartFolder.isDirectory()) { //获取数据源目录名称 String name = StartFolder.getName(); //创建与开始数据源目录名字相同的目录 File NewFolder = new File(EndFolder, name); if (!NewFolder.exists()) NewFolder.mkdir(); //遍历该File数组获取所有File对象 File[] files = StartFolder.listFiles(); for (File listFile : files) { CopyFile(listFile,NewFolder); } } else{ File newFile = new File(EndFolder, StartFolder.getName()); method(StartFolder, newFile); } } private static void method(File startFolder, File newFile) throws IOException { //创建字节缓冲输入流对象 BufferedInputStream bs = new BufferedInputStream(new FileInputStream(startFolder)); //创建字节缓冲输出流对象 BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(newFile)); //创建数组 byte[] by = new byte[1024]; int len; while ((len = bs.read(by)) != -1) { os.write(by, 0, len); } //释放资源 bs.close(); os.close(); } }
关于字节缓冲流复制多级文件夹到指定路径(**笔记**)
最新推荐文章于 2024-08-11 20:00:32 发布