- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- //复制一个文件夹下的所有java文件到另一目录,且将。java替换成。txt
- public class CopyDir
- {
- public static void main(String[] args)
- {
- File src=new File("D:\\src");//想要复制的文件目录
- File dest=new File("D:\\srcCopy");//目的文件目录
-
- dest.mkdir();//创建目的文件夹
- copyDir(src,dest);//复制文件并更改格式
- }
- private static void copyDir(File src, File dest)
- {
- File[] files=src.listFiles();//获取文件列表
- for(File file:files)
- {
- if(file.isDirectory())//如果是文件夹
- {
- File f=new File(dest.getAbsolutePath()+"\\"+file.getName());//封装目的地对应的文件夹对象
- f.mkdir();//创建目的地对应目录
- copyDir(file,f);//递归展开目录
- }
- else//如果是文件
- {
- if(file.getName().endsWith(".java"))//如果是java文件
- {
- String path=dest.getAbsoluteFile()+"\\"+file.getName();//用字符串保存对应的文件路径
- path=path.replaceAll(".java", ".txt");//将。java替换成。txt
- File f=new File(path);//将该文件对象封装
- copyFile(file,f);//复制文件
- }
- }
- }
- }
- private static void copyFile(File src, File dest)
- {
- try
- {
- BufferedInputStream bi=new BufferedInputStream(new FileInputStream(src));//创建文件输入流
- BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream(dest));//创建文件输出流
-
- //写入数据
- byte[] buf=new byte[1024];
- int len=0;
- while((len=bi.read(buf))!=-1)
- {
- bo.write(buf,0,len);
- }
- bi.close();
- bo.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
-
- }
- }
复制代码 |