3763人加入学习
(12人评价)
Java编程学习第三季

制作完成于2018年5月10日 使用JDK 8

价格 免费

读取两个文件夹名称,将A文件夹内容全部拷贝到B文件夹(不包含A文件夹里面的zi'wen'jian'jia)

[展开全文]
Kwong · 2021-07-22 · 628-练习题4 0

4,根据两个文件夹名称,将A文件夹内容全部拷贝到B文件夹(不包含A文件夹里面的子文件夹)的另一种方法。 

package com.studyjava.chapter5;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class Practice4 {
	public static void main(String[] args) {
		
		copyFilesToFloder("D:\\dev\\test\\bw\\1\\", "D:\\dev\\test\\bw\\2\\");
		
	}
	
	public static void copyFilesToFloder(String source, String target) {
		File src = new File(source);
		File dest = new File(target);
		
		if (src.isDirectory()) {
			File[] files = src.listFiles();
			for(File f: files) {
				if(f.isFile())
					copyFile(f, new File(target, f.getName()));//通过目标路径和文件名构造目标File文件对象
			}
		}
		else {
			System.out.println("the source should be a floder.");
		}
	}
	
	public static void copyFile(File src, File dest) {
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;
		
		try {
			bis = new BufferedInputStream(new FileInputStream(src));
			bos = new BufferedOutputStream(new FileOutputStream(dest));
			
			byte[] bys = new byte[1024];
			int length = -1;
			while ((length = bis.read(bys))!=-1) {
				bos.write(bys, 0, length);
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			
			try {
				if(bis!=null)
					bis.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			try {
				if(bos!=null)
					bos.close();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
	
}


 

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(65)

学员动态

lxs0204 加入学习
yinianglai 加入学习
筑路人 加入学习