第14周作业

题目:编写一个应用程序,输入一个目录和一个文件类型,显示该目录下符合该类型的所有文件。之后,将这些文件中的某一个文件剪切到另外一个目录中。ps:第一次课请先完成前一部分。

X类

package ccut.ch.fourteen;

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);
    }
}

TestMain类

package ccut.ch.fourteen;

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 TestMain {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        System.out.println("请输入要查询的文件类型:");
        File dir = new File("D:\\java14");  //创建文件对象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();// 删除源文件
    }

}

运行结果

第14周作业_第1张图片
第14周作业_第2张图片
第14周作业_第3张图片
第14周作业_第4张图片

你可能感兴趣的:(第14周作业)