复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76/* * 需求:将指定目录(包含内容)复制到另一个目录中 * * 源目录 目标目录 * * * 分析: * 首先我们要获取源目录下所有的文件和子目录, * 我们可以把源目录封装成一个File对象, * 我们可以调用File类listFiles()方法, * 我们可以获取源目录下所有的文件和子目录所对应的File对象。 * 如果我们获取到的是文件 * 先在目标目录中创建该文件所对应的目录, * 进行文件的复制。 * 如果我们获取到的是子目录 * 看看子目录下面是否还有其他的文件和更深层次的子目录 * * * */ public class RecourrenceDemo02 { public static void main(String[] args) throws IOException { // 复制文件夹 File src = new File("D:\英雄时刻"); //源目录 File goal = new File("D:\aaaa"); //目标目录 copyFile(src,goal); } @SuppressWarnings("resource") public static void copyFile(File src,File goal) throws IOException{ //为了严谨起见,我们首先对源目录和目标目录进行判断,看他们到底是不是目录 if(src.isDirectory() && goal.isDirectory()) { //如果两个对象都是目录,需要创建新的目录 //文件的目录为:goal+src.getName (D:\aaaa+英雄时刻) File newFile = new File(goal,src.getName()); if(!newFile.exists()){ //判断文件夹是否存在 newFile.mkdirs(); //创建目录 } //获取源目录下所有的文件和子目录 File[] list = src.listFiles(); for (File file : list) { if(file.isFile()){ //如果文件是文件,就进行复制文件操作 FileInputStream in = new FileInputStream(file); //newFile+遍历出file文件的名字(D:\aaaa\英雄时刻+file的名字)) FileOutputStream out = new FileOutputStream(new File(newFile,file.getName())); byte[] by=new byte[1024]; int len; while((len=in.read(by))!=-1){ out.write(by, 0, len); } in.close(); out.close(); }else{ //如果File对象是子目录,递归, 这里注意传入的对象,出错会出现堆内存溢出异常 copyFile(file,newFile); } } } }}
最后
以上就是灵巧烧鹅最近收集整理的关于需求:将指定目录(包含内容)复制到另一个目录中(利用字节流复制文本文件)的全部内容,更多相关需求内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复