A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

创建一个集合,内容有:[“测试题”,“点招”,“模拟练习”,“编程”];
  
手动在D盘根目录下新建“test”文件夹,递归遍历“D:\\ks”文件夹下所有文件,将与该集合中所包含元素名称相同的”.txt”文件复制一份到“test” 文件夹中;

3 个回复

倒序浏览
[Java] 纯文本查看 复制代码
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.Arrays;
import java.util.List;

import org.junit.Test;

/**
 * 
 * 创建一个集合,内容有:[“测试题”,“点招”,“模拟练习”,“编程”];
 * 
 * 手动在D盘根目录下新建“test”文件夹,递归遍历“D:\\ks”文件夹下所有文件,将与该集合中所包含元素名称相同的”.txt”文件复制一份到“test”
 * 文件夹中;
 *
 */
public class Demo00 {

    public static void main(String[] args) throws IOException {

        String[] filenames = { "测试题", "点招", "模拟练习", "编程" };
        List<String> list = Arrays.asList(filenames);
        
        foo(new File("D:\\ks"),list);
    }

    public static void foo(File dir,List<String> list) throws IOException {

        if (dir.isDirectory()) {
            File[] listFiles = dir.listFiles();
            for (File file : listFiles) {
                if (file.isDirectory()) {
                    foo(file,list);
                } else {
                    String name = file.getName();
                    name = name.replaceAll("\\.txt", "");
                    
                    if (list.contains(name)) {
                        copy(file);
                    }
                }
            }
        }
    }

    private static void copy(File file) throws IOException {
        int count = 0;
        FileInputStream fileInputStream = new FileInputStream(file);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        
        File outFile = new File("D:/test",file.getName());
        String name = outFile.getName();
        name = name.replaceAll("\\.txt", "");
        while (outFile.exists()) {
            count++;
            outFile = new File("D:/test",name+"("+count+").txt");
        }
        
        FileOutputStream fileOutputStream = new FileOutputStream(outFile);
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
        
        for (int read = 0; (read = bufferedInputStream.read()) != -1;) {
            bufferedOutputStream.write(read);
        }
        
        bufferedOutputStream.close();
        bufferedInputStream.close();
        
    }

    @Test
    public void makeDir() {

        File file = new File("D:/test");
        file.mkdir();
    }
}
回复 使用道具 举报
香草芭芙 发表于 2017-3-2 09:47
[mw_shl_code=java,true]import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
impo ...

非常感谢你的回复!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马