[Java] 纯文本查看 复制代码 public class Test {
/**
*
* @author ZhangYiLing
*
*/
public static void main(String[] args) throws IOException {
//源文件目录
File srcName = new File("D:\\文档");
//目标文件目录
File destName = new File("E:\\test4");
//判断目的地文件夹是否存在,如不存在则创建它
if (!destName.exists()) {
destName.mkdir();
}
//调用文件夹复制功能
copyFolder(srcName,destName);
}
private static void copyFolder(File srcName, File destName) throws IOException {
//判断srcName对象是否为文件夹,如果不是则复制里面的所有文件.
if (srcName.isDirectory()) {
//建立目的地文件夹路径
File newFolder = new File(destName,srcName.getName());
//创建目的地文件夹
newFolder.mkdir();
//获取源地址文件夹数组
File [] folderArray = srcName.listFiles();
//使用增强for循环获取源地址每一个文件夹
for(File file: folderArray) {
//使用递归,继续获取源地址文件夹路径名称后创建到目的地路径文件夹
copyFolder(file,newFolder);
}
// 过滤非java文件
} else if (srcName.isFile() && srcName.getName().endsWith(".java")){
// 将java文件的后缀名替换为txt
String destTxt = srcName.getName().replace(".java", ".txt");
//创建一个新的文件对象用于指定输出文件路径
File newFile = new File(destName,destTxt);
copyFile(srcName,newFile);
}
}
private static void copyFile(File srcName, File newFile) throws IOException {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcName));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte [] bys = new byte[1024];
int len = 0;
while((len = bis.read(bys)) != -1){
bos.write(bys,0,len);
}
bos.close();
bis.close();
}
} |