您的位置:首页 > 其它

2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录

2018-01-20 22:25 501 查看
2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录

解题思路:

1,循环遍历txt文件个数

2,遍历一个,获取一个,复制一个

3,获取txt,写一个函数

4,复制文件,写一个函数

/*
2.获取指定目录及子目录下所有txt文件的个数,并将这些txt文件复制到D盘下任意目录

解题思路:
1,循环遍历txt文件个数
2,遍历一个,获取一个,复制一个
3,获取txt,写一个函数
4,复制文件,写一个函数

*/
package HomeWork2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Copy_Txt {
public static void main(String[] args) {
System.out.println("请输入指定目录(程序将会自动将目录内" + "的所有txt文件复制到指定文件目录中),如:d:\\docs\\txt");
Scanner sc = new Scanner(System.in);
String path = sc.nextLine();
File src = new File(path); // 获取用书输入的目录
getTxt(src);
}

/*
* 获取txt文件 ,函数
*/
public static void getTxt(File src) {
File[] files = src.listFiles();
File des = new File("h:\\txt");
for (int i = 0; i < files.length; i++) {
if (files[i].is
4000
Directory()) {
getTxt(files[i]);
} else {
copyFile(files[i], new File(des, files[i].getName()));
}
}
}

/*
* 复制文件函数
*/
public static void copyFile(File src, File des) {
long s = System.currentTimeMillis(); // 获取系统当前毫秒级时间
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(src);
fos = new FileOutputStream(des);
// 创建缓冲数组
byte[] bytes = new byte[1024];
// 读取文件个数len
int len = 0;
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
} catch (IOException ex) {
System.out.println(ex);
throw new RuntimeException("复制文件失败!");
} finally {
try {
if (fos != null)
fos.close();
} catch (IOException ex) {
System.out.println(ex);
throw new RuntimeException("fos释放资源失败!");
} finally {
try {
if (fis != null)
fis.close();
} catch (IOException ex) {
System.out.println(ex);
throw new RuntimeException("fis释放资源失败!");
}
}
}
long e = System.currentTimeMillis();
System.out.print("复制文件" + src.getName() + "耗费时间(毫秒级)为:");
System.out.println(e - s);
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐