黑马程序员技术交流社区
标题:
复制一个文件下所有的东西到另一个文件夹下
[打印本页]
作者:
xuxu5112
时间:
2015-9-20 01:22
标题:
复制一个文件下所有的东西到另一个文件夹下
package com.xuchang.test;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class Test3 {
/**
*3,从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File dir1 = getFile();
File dir2 = getFile();
copyFiles(dir1,dir2);
System.out.println("复制成功!");
}
/*定义getFile()方法
* A.返回值类型File
* B.参数列表
* 1.创建键盘录入对象
* 2.String line接受数据
* 3.封装成File对象
* 4.无限循环 判断是否是文件夹
* 5.return file;
* */
public static File getFile() {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请输入一个路径:");
String line = sc.nextLine();
File file = new File(line);
if(!file.exists()) {
System.out.println("路径不存在!");
}else if(file.isFile()) {
System.out.println("路径是文件");
}else
return file;
}
}
/*定义copyFiles()方法
* A.返回值类型void
* B.参数列表File dir1.File dir2
* 1.调用listFiles()方法得打该文件夹下的所有文件对象并存入File[]中
* 2.遍历数组 如果是文件夹则递归
* 如果是文件则复制
* */
public static void copyFiles(File dir1,File dir2) throws IOException {
File[] files = dir1.listFiles();
for (File file : files) {
if(file.isDirectory()) {
File f = new File(dir2,file.getName());
f.mkdirs(); //创建文件夹目录
copyFiles(file,f);
}else {
//copy(file,new File(dir2,file.getName()));
copy(file,dir2);
}
}
}
/*定义方法copy将文件拷贝到指定的文件夹下
* A.返回值类型void
* B.参数列表File file,File dir
* 1.创建输入流对象关联file
* 2.创建输出流对象关联dir,file
* 3.读写
* 4.关流释放资源
* */
public static void copy(File file,File dir) throws IOException {
BufferedInputStream fis = null;
BufferedOutputStream fos = null;
try {
fis = new BufferedInputStream(new FileInputStream(file));
fos =new BufferedOutputStream(new FileOutputStream(new File(dir,file.getName())));
int len; //读写
while((len = fis.read()) != -1) {
fos.write(len);
}
}finally {
try {
if(fis != null)
fis.close();
}finally {
if(fos != null)
fos.close();
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2