输入两个文件夹名称,将A文件夹内容全部拷贝到B文件夹,要求使用多线程来操作。
详细要求与思路:将指定的文件夹中的内容,复制到指定的文件目录下,原目录下每遇到一个子文件目录则开启一个线程(这里大家可以仔细考虑一下需不需要进行线程同步),该线程使用文件读入流,将子文件目录中的文件内容读取到内存中,并在目标文件目录下创建一个相同的文件名,并使用文件写出流将内存中读取到的内容实现写出操作。每次开启子线程操作文件,考虑通过递归调用实现。
题主主要是进行对多线程,io流的读写练习,这个demo还是比较锻炼基础知识的,使题主对这些知识点的运用和理解进一步提高,希望可以帮到大家。
下面是程序主体
package iotest.IOextention;
import java.io.*;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
public class MoveDirectoryToAnother {
public static void main(String[] args) {
Util util = new Util();
util.getContent("E:\\赛鸣Java\\每日源码","E:\\赛鸣Java\\新建文件夹1/测试");
}
}
下面是程序的主要实现类和方法
class Util{
private static int num;
public void getContent(String str,String str1){
File file = new File(str);
if (file.exists()){
File newfile = new File(str1);
newfile.mkdir();
if (file