Java-->用递归方法复制目录、子目录以及文件(文件用到IO流)

时间:2022-08-23 16:42:13
package com.dragon.java.newcopyfile;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class Test {
public static void main(String args[]) {
File file = new File("f:/Exercises");
File file2 = new File("f:/book");
copyFile(file, file2);
} // 递归方法
public static void copyFile(File file, File file2) {
// 当找到目录时,创建目录
if (file.isDirectory()) {
file2.mkdir();
File[] files = file.listFiles();
for (File file3 : files) {
// 递归
copyFile(file3, new File(file2, file3.getName()));
}
//当找到文件时
} else if (file.isFile()) {
File file3 = new File(file2.getAbsolutePath());
try {
file3.createNewFile();
copyDatas(file.getAbsolutePath(), file3.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
}
}
} // 复制文件数据的方法
public static void copyDatas(String filePath, String filePath1) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
// 字节流
fis = new FileInputStream(filePath);
fos = new FileOutputStream(filePath1);
byte[] buffer = new byte[1024];
while (true) {
int temp = fis.read(buffer, 0, buffer.length);
if (temp == -1) {
break;
} else {
fos.write(buffer, 0, temp);
}
}
} catch (IOException e) {
System.out.println(e);
} finally {
try {
fis.close();
fos.close();
} catch (IOException e) {
System.out.println(e);
}
}
}
}

Java-->用递归方法复制目录、子目录以及文件(文件用到IO流)的更多相关文章

  1. java 弹出选择目录框(选择文件夹),获取选择的文件夹路径

    java 弹出选择目录框(选择文件夹),获取选择的文件夹路径 java 弹出选择目录框(选择文件夹),获取选择的文件夹路径:int result = 0;File file = null;String ...

  2. java获取ubuntu某个目录下的所有文件信息

    java获取ubuntu某个目录下的所有文件信息 public List<VCFile> getAllFiles(String basicDirName) { List<VCFile ...

  3. Java复制目录&sol;子目录&sol;文件

    import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...

  4. Spark:java api读取hdfs目录下多个文件

    需求: 由于一个大文件,在spark中加载性能比较差.于是把一个大文件拆分为多个小文件后上传到hdfs,然而在spark2.2下如何加载某个目录下多个文件呢? public class SparkJo ...

  5. File类的特点&quest;如何创建File类对象&quest;Java中如何操作文件内容&comma;什么是Io流Io流如何读取和写入文件&quest;字节缓冲流使用原则&quest;

    重难点提示 学习目标 1.能够了解File类的特点(存在的意义,构造方法,常见方法) 2.能够了解什么是IO流以及分类(IO流的概述以及分类) 3.能够掌握字节输出流的使用(继承体系结构介绍以及常见的 ...

  6. java写文件读写操作(IO流,字节流)

    package copyfile; import java.io.*; public class copy { public static void main(String[] args) throw ...

  7. Java实现——字符串分割以及复制目录下的所有文件

    0.  前言 今天有个需求,把Android中data/data目录下指定(通过读预置的XML文件)的多个应用下的多个目录全部内容通过OTG模式复制到U盘中. 首先读取XML文件内的某个节点的属性值, ...

  8. Java之递归遍历目录,修改指定文件的指定内容

    EditProperties.java package PropertiesOperation.Edit; import java.io.File; /** * 替换指定Porpoerties文件中的 ...

  9. java 递归获取一个目录下的所有文件路径

    还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...

随机推荐

  1. kqueue用法简介

    1.什么是kqueue和IO复用 kueue是在UNIX上比较高效的IO复用技术. 所谓的IO复用,就是同时等待多个文件描述符就绪,以系统调用的形式提供.如果所有文件描述符都没有就绪的话,该系统调用阻 ...

  2. Android--启动拍照功能并返回结果

    因为没有深入学习拍照这块功能,所以只是简单的调用了一下系统的拍照功能,下面代码: //拍照的方法 private void openTakePhoto(){ /** * 在启动拍照之前最好先判断一下s ...

  3. DDNS 的工作原理及其在 Linux 上的实现--转

    http://www.ibm.com/developerworks/cn/linux/1305_wanghz_ddns/index.html DDNS (Dynamic DNS) 扩展了 DNS 将客 ...

  4. POJ 2699 战斗小王子

    题目大意:一场联赛可以表示成一个完全图,点表示参赛选手,任意两点u, v之间有且仅有一条有向边(u, v)或(v, u),表示u打败v或v打败u.一个选手的得分等于被他打败的选手总数.一个选手被称为“ ...

  5. k-d Tree in TripAdvisor

    Today, TripAdvisor held a tech talk in Columbia University. The topic is about k-d Tree implemented ...

  6. BZOJ 2440&colon; &lbrack;中山市选2011&rsqb;完全平方数&lpar; 二分答案 &plus; 容斥原理 &plus; 莫比乌斯函数 &rpar;

    先二分答案m,<=m的有m-∑(m/pi*pi)+∑(m/pi*pi*pj*pj)-……个符合题意的(容斥原理), 容斥系数就是莫比乌斯函数μ(预处理)... ----------------- ...

  7. 基于Qt有限状态机的一种实现方式和完善的人工智能方法

    基于Qt有限状态机的一种实现方式和完善的人工智能方法 人工智能在今年是一个非常火的方向,当然了.不不过今年,它一直火了非常多年,有关人工智能的一些算法层出不穷.人工智能在非常多领域都有应用,就拿我熟悉 ...

  8. Ubuntu使用之Svn命令小技巧

    注: [svn Path]:是指要代替码分支的server绝对路径 [Path]:是指终端相对当前文件夹的相对路径.假设是在当前文件夹下,就省略路径 ①.取svnserver的代码: svn co [ ...

  9. Shell-find &period; -type f -name &quot&semi;&ast;&period;php&quot&semi; -print0 &vert; xargs -0 wc -l

    统计一个源代码目录中所有 php 文件的行数

  10. 使用一条sql查询多个表中的记录数

    方法一: select t1.num1,t2.num2,t3.num3 from (select count(*) num1 from table1) t1, (select count(*) num ...