需求:将指定目录(包含内容)复制到另一个目录中(利用字节流复制文本文件)
2017-07-01 18:56
281 查看
/* * 需求:将指定目录(包含内容)复制到另一个目录中 * * 源目录 目标目录 * * * 分析: * 首先我们要获取源目录下所有的文件和子目录, * 我们可以把源目录封装成一个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); } } } }}
相关文章推荐
- (java基础)将指定目录(包含内容)复制到另一个目录中
- 在当前目录下查找查找包含指定内容的文件
- 使用python读取指定目录下的源代码并将内容复制到同一新文件中
- 搜索目录下所有文件内容是否包含指定的关键词
- 采用多线程和生产者消费者模式来实现对于一个目录以及所有子目录下的文件内容的搜索,打印出包含指定关键字的行.
- File类,列出当前指定路径下的所有内容,目录中包含的目录不关心,递归打破肘挚,学习
- linux寻找某目录下包含指定内容的文件
- VBA遍历当前目录下指定类型的excel文件并复制文件内指定的内容到新表中
- linux复制指定目录下的全部文件到另一个目录中,linux cp 文件夹
- Ubuntu复制指定目录下的全部文件到另一个目录中
- 将android工程中assets中的文本文件复制到指定的SD卡目录中
- linux命令复制指定文件或者指定目录下的全部文件到另一个目录中
- 利用fs.readdir()函数访问服务器指定目录里的内容
- Java中读取txt文本中内容+目录文件复制到指定目录
- 复制单级文件夹及其下面的内容到指定的目录下去
- C#将文件从指定的目录复制到另一个目录
- 利用Callable,统计目录下有多少个文件中包含指定的关键字
- 多级文件的复制:复制指定目录下的内容到另一指定目录下
- HDFS练习5-----删除指定目录下的所有的空文件和空文件夹(包含子文件夹下的内容)
- linux 搜索后内容复制到指定目录