zoukankan      html  css  js  c++  java
  • 迟到的第14周作业

    题目:

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

    源代码:Test.java(接收用户输入路径文件名)

    /*Test类,主方法main
     * String型s1,s2,s3,s5接收用户输入内容
     * String型s4,s6合成文件路径
     * 创建Select 对象st,Shear 对象sr,
     * 调用st.SelectType()方法和sr.WriteIn方法()并传参
     * */
    package ccut.edu.wj;
    import java.util.Scanner;
    public class Test {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //用户输入需要的文件路径,文件类型
            Scanner in = new Scanner(System.in);
            System.out.print("请输入文件路径:");
            String s1 = in.nextLine();
            System.out.print("请输入文件格式后缀:");
            String s2 = in.nextLine();
            //选择需要的文件类型
            Select st = new Select();//创建Select类对象
            st.SelectType(s1, s2);//调用选择文件类型的方法
            //剪切选中的文件
            System.out.print("请输入需要剪切的文件名:");
            String s3 = in.nextLine();
            String s4 = s1+"\\"+s3+"."+s2;//合成路径全称
            System.out.print("请输入需要剪切到哪个目录:");
            String s5 = in.nextLine();
            String s6 = s5+"\\"+s3+"."+s2;//合成文件路径全称
            Shear sr =new Shear();//创建Shear类对象
            sr.WriteIn(s4,s6);//调用WriteIn方法,传参两个路径
        }
    }

    源代码:Select.java(显示目录下符合类型的所有文件)

    /*Select类,方法SelectType
     * File 对象path
     * getFilenames类实现接口FilenameFilter
     * 构造方法getFilenames()
     * 字符数组filenames[]存储符合的文件名
     * */
    package ccut.edu.wj;
    import java.io.File;
    import java.io.FilenameFilter;
    
    public class Select {//选择指定类型文件
        public void SelectType(String s1,String s2) {
            File path = new File(s1);//创建File的对象path,并给文件路径s1
            FilenameFilter endName = new getFilenames(s2);//接口回调,给s2(文件类型)
            String[] filenames = path.list(endName);
            System.out.println("一共有"+filenames.length+"个"+s2+"类型的文件!");
            for(String name : filenames) {//循环输符合的文件名
                System.out.println(name);
            }
        }
    }
    
    class getFilenames implements FilenameFilter{//实现接口
        String style ;
        getFilenames(String style){//构造方法
            this.style=style;
        }
        public boolean accept(File file, String name) {//比较结尾
            return name.endsWith(style);
        }
    }

    源代码:Select.java(选一个文件剪切到另外一个目录中)

    /*Shear类,方法WriteIn
     * File 对象f,f1。
     * 创建新文件f1.createNewFile();
     * while循环读取每行内容,同时把每行内容写入到新文件中
     * */
    package ccut.edu.wj;
    import java.io.*;
    
    public class  Shear {
        
        public  void WriteIn(String s4,String s6) {
            File f = new File(s4);
            InputStreamReader in = null;
            BufferedReader bin =null;
            File f1 = new File(s6);
            Writer w = null;
            BufferedWriter bw= null;
            try {
                //FileReader不能手动设置编码,使用InputStreamReader来代替,用InputStreamReader来读取,后面配上编码格式
                in = new InputStreamReader(new FileInputStream(f),"UTF-8");//防止中文乱码
                bin = new BufferedReader(in);
                f1.createNewFile();//真正创建文件
                w = new FileWriter(f1,false);//覆盖写入
                bw = new BufferedWriter(w);
                while(true){//循环读取每行内容
                    String line=bin.readLine();//按行读取文件
                    if(line==null){//如果行为空就退出循环
                    break;
                    }
                    //System.out.println(line);
                    bw.write(line+'
    ');//读取每行的同时,向创建的新文件写入每行内容,同时换行
                    }
                System.out.println("剪切完成!");
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                try {
                    bin.close();
                    in.close();
                    bw.close();
                    w.close();
              f.delete(); }
    catch (IOException e) { e.printStackTrace(); } } } }

    运行结果:

    剪贴后:

  • 相关阅读:
    一键复制文本框内容代码、
    改掉这些坏习惯,你不再是菜鸟
    使用cookie保存页面登录信息
    二维数组转换成一维数组
    jQuery选择器总结
    cookie 和session 的区别详解
    PHP扫雷(转载)。
    PHP简易计算器方法2
    PHP简易计算器方法1
    业务逻辑的存储过程(添加学生的案例)(自动编号)
  • 原文地址:https://www.cnblogs.com/zyg777/p/11985608.html
Copyright © 2011-2022 走看看