• 迟到的第14周作业


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

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

    二、代码

    1.Test

    /**
     * 创建FileAccept包含
     * 成员变量str
     * 构造方法
     * accept方法
     * 创建Test类
     * 包含主方法
     * FileAccept类的对象acceptCondition
     * 调用fileList方法
     */
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.util.Scanner;
    class FileAccept implements FilenameFilter{
        String str = null;
        FileAccept(String s){
            str = "."+s;
        }
        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return name.endsWith(str);
        }
    }
    public class Test {
        public static void main(String[] args) throws IOException {
            Scanner reader=new Scanner(System.in);
            System.out.println("请输入文件路径:");
            String P =reader.nextLine();
            File dir = new File(P);
            System.out.println("请输入需要查找的文件后缀");
            String A =reader.nextLine();
            FileAccept acceptCondition = new  FileAccept(A);//设置文件名后缀
            String fileList[] =dir.list(acceptCondition);   //获取文件名
                System.out.println("目录下有"+fileList.length+"文件");
            for (int i = 0; i < fileList.length; i++) {
                System.out.println(fileList[i]);
            }
            System.out.println("请输入需要剪切的文件名:");
            String name = reader.nextLine();
            System.out.println("请输入需要剪切至那个目录");
            String target = reader.nextLine();
            File namefile = new File(P+"\"+name);
            FileInputStream in = new FileInputStream(namefile);   
            File targetfile = new File(target+"\"+name);
            targetfile.createNewFile();           //在目标目录创建新文件;
            FileOutputStream out =  new FileOutputStream(targetfile);
            byte[] bytes = new byte[1024];
            int count = 0 ;
            try {
                while((count = in.read(bytes, 0, 1024)) != -1){    //将原文件内容读写入到目标文件中
                    out.write(bytes, 0, count);
                    out.flush();
                }
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }finally{           
                if(in != null){
                    try {
                        in.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
                if(out != null)
                    try {
                        out.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
            }
            namefile.delete(); //删除原文件
        }
    }
       
     
     

    三、运行结果

  • 相关阅读:
    linux下进程权限分析
    基于Token的身份验证——JWT
    hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(3)http://www.cnblogs.com/liugh/p/6624491.html
    hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(2)安装hadoop
    hadoop2.7.3+spark2.1.0+scala2.12.1环境搭建(1)安装jdk
    配置ssh无密钥登陆
    Linux实战案例(7)安装jdk
    Scala入门(1)Linux下Scala(2.12.1)安装
    Linux实战案例(6)yum查找、卸载、和安装软件
    Linux实战案例(5)关闭Centos的防火墙
  • 原文地址:https://www.cnblogs.com/Xwwg/p/12000972.html
Copyright © 2020-2023  润新知