我是靠谱客的博主 动人鞋子,最近开发中收集的这篇文章主要介绍Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 复制多级文件夹的案例

需求:复制多级文件夹
 
     数据源:E:JavaSEday21codedemos
     目的地:E:
 
分析:
        A:封装数据源File
        B:封装目的地File
        C:判断该File是文件还是文件夹
                      a:是文件夹
                             就在目的地目录下创建该文件夹
                             获取该File对象下的所有文件或者文件夹File对象
                             遍历得到每一个File对象
                             回到C
                    b:是文件
                            就复制(字节流)
 
2. 代码示例:
 1 package cn.itcast_05;
 2 import java.io.BufferedInputStream;
 3 import java.io.BufferedOutputStream;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 /*
 9  * 需求:复制多极文件夹
10  *
11  * 数据源:E:JavaSEday21codedemos
12  * 目的地:E:\
13  *
14  * 分析:
15  *
A:封装数据源File
16  *
B:封装目的地File
17  *
C:判断该File是文件夹还是文件
18  *
a:是文件夹
19  *
就在目的地目录下创建该文件夹
20  *
获取该File对象下的所有文件或者文件夹File对象
21  *
遍历得到每一个File对象
22  *
回到C
23  *
b:是文件
24  *
就复制(字节流)
25
*/
26 public class CopyFoldersDemo {
27
public static void main(String[] args) throws IOException {
28
// 封装数据源File
29
File srcFile = new File("E:\JavaSE\day21\code\demos");
30
// 封装目的地File
31
File destFile = new File("E:\");
32
// 复制文件夹的功能
33 
copyFolder(srcFile, destFile);
34 
}
35
private static void copyFolder(File srcFile, File destFile)
36
throws IOException {
37
// 判断该File是文件夹还是文件
38
if (srcFile.isDirectory()) {
39
// 文件夹
40
File newFolder = new File(destFile, srcFile.getName());
41 
newFolder.mkdir();
42
// 获取该File对象下的所有文件或者文件夹File对象
43
File[] fileArray = srcFile.listFiles();
44
for (File file : fileArray) {
45 
copyFolder(file, newFolder);
46 
}
47
} else {
48
// 文件
49
File newFile = new File(destFile, srcFile.getName());
50 
copyFile(srcFile, newFile);
51 
}
52 
}
53
private static void copyFile(File srcFile, File newFile) throws IOException {
54
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
55 
srcFile));
56
BufferedOutputStream bos = new BufferedOutputStream(
57
new FileOutputStream(newFile));
58
byte[] bys = new byte[1024];
59
int len = 0;
60
while ((len = bis.read(bys)) != -1) {
61
bos.write(bys, 0, len);
62 
}
63 
bos.close();
64 
bis.close();
65 
}
66 }

 

转载于:https://www.cnblogs.com/hebao0514/p/4870290.html

最后

以上就是动人鞋子为你收集整理的Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例的全部内容,希望文章能够帮你解决Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部