迟到的第14周作业

题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。

ps:第一次课请先完成前一部分。

X类型:

package hj;
import java.io.File;
import java.io.FilenameFilter;
class X implements FilenameFilter {
    String type;
    X(String type){
        this.type=type;
    }

    @Override
    public boolean accept(java.io.File dir, String name) {
        // TODO Auto-generated method stub
        return name.endsWith(type);
    }



}

Test类:

package hj;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        System.out.println("请输入要查询的文件类型:");
        File dir = new File("D:\\java");  //创建文件对象dir
        Scanner scan = new Scanner(System.in);
        String type = scan.nextLine();   //接收输入查询文件类型
        X f = new X(type);
        String[] Files = dir.list(f);    //用字符串形式按type类型返回目录下的文件
        for (String name : Files) {
            System.out.println(name);
        }
        System.out.println("请输入要剪切的文件名:");
        String CFname = scan.nextLine();
        System.out.println("请输入新的目录:");
        String Path = scan.nextLine();
        File cf = new File(Path, CFname);// 此对象是新目录下的同名新文件
        BufferedInputStream bin = null;
        BufferedWriter bw = null;
        int count = 0;
        byte[] b = new byte[1024];
        try {
            cf.createNewFile();
            bin = new BufferedInputStream(new FileInputStream(cf));
            String str = "";// 接收原文件中的内容
            while ((count = bin.read(b, 0, 1024)) != -1) {
                str = str + new String(b);
            }
            bw = new BufferedWriter(new FileWriter(cf, true));
            bw.write(str);// 将接收的内容写入新文件中
        } catch (IOException e) {

            e.printStackTrace();
        } finally {
            bin.close();
            bw.close();
        }
        cf.delete();// 删除源文件
    }
}

运行截图:

 

posted @ 2019-12-08 20:44  季英杰  阅读(228)  评论(0编辑  收藏  举报