首页 > 其他 > 详细

用io流操作,复制文件夹到目标文件夹。

时间:2019-08-27 21:46:54      阅读:87      评论:0      收藏:0      [点我收藏+]
package demo8_27;

import java.io.File;
import java.io.*;


public class Test1 {
public static void main(String[] args) throws IOException {
// path1被复制文件夹地址
String path1 = "D:/JAVA/AAA";
String[] jj= path1.split("/");
System.out.println(jj[jj.length-1]);
int o= path1.lastIndexOf(jj[jj.length-1]);
// path2目标文件加地址
String path2 = "D:/JAVA/BBB/";
// 创建文件对象
File file1 = new File(path1);
Test1 test1 = new Test1();
// 创建开始时间对象
long start = System.currentTimeMillis();
// 执行复制方法
test1.kk(file1, o, path2);
// 创建结束时间对象
long end = System.currentTimeMillis();
// 输出程序运行的时间
System.out.println(end-start);
}
// 复制文件夹方法,方法名为kk
public void kk(File file1, int o, String path2) throws IOException {
// 判断被复制文件对象是否是目录
if (file1.isDirectory()) {
// 若是目录遍历该目录下的所有文件和文件夹
File[] files = file1.listFiles();
// 若该文件加为空则直接在目标地址创建文件夹
if (files.length == 0) {
String str2 = file1.getPath().substring(8);
File filec2 = new File(path2 + str2);
filec2.mkdirs();
}
// 递归遍历
for (File file : files) {
kk(file, o, path2);
}
// 若该文件夹不是目录
} else {
// 用输入流读取被复制文件,用输出流输出到目标文件
String str = file1.getPath().substring(o);
File filec = new File(path2 + str);
String str2 = file1.getParent().substring(o);
File filec2 = new File(path2 + str2);
filec2.mkdirs();
InputStream reader = new FileInputStream(file1);
OutputStream writer = new FileOutputStream(filec);
byte[] b = new byte[1024];
int len;
while ((len = reader.read(b)) != -1) {
writer.write(b, 0, len);
}
// 记得关闭输入流和输出流
reader.close();
writer.close();
}


}
}

用io流操作,复制文件夹到目标文件夹。

原文:https://www.cnblogs.com/miaopasi-lianjiang/p/11420786.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!