黑马程序员技术交流社区

标题: 黑马考试有道题不会 在线求解答 [打印本页]

作者: 诶呀!哎呀!    时间: 2017-3-1 18:04
标题: 黑马考试有道题不会 在线求解答
创建一个集合,内容有:[“测试题”,“点招”,“模拟练习”,“编程”];
  
手动在D盘根目录下新建“test”文件夹,递归遍历“D:\\ks”文件夹下所有文件,将与该集合中所包含元素名称相同的”.txt”文件复制一份到“test” 文件夹中;
作者: 香草芭芙    时间: 2017-3-2 09:47
[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-6 10:38
香草芭芙 发表于 2017-3-2 09:47
[mw_shl_code=java,true]import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
impo ...

非常感谢你的回复!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2