zoukankan      html  css  js  c++  java
  • 面向对象 (12)文件查找

    题目1(前一部分):编写一个应用程序,输入一个目录输出显示该目录下的所有文件。再输入一个类型,将该目录符合该类型的文件进行显示。

    一、源程序

    filework.java

    /**文件查找 2个类3个方法
     * (1)手动输入目录 列出所有文件
     * (2)指定某类型 列出该类型文件
     */
    package cn.edu.ccut.w1204;
    
    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.Scanner;
    
    class type implements FilenameFilter{//创建FilenameFilter接口子类
        String str = null;
        type(String str){//定义构造方法
            this.str = "."+str;
        }
        public boolean accept(File dir, String name) {//重写accept方法
            return name.endsWith(str);//匹配后面字段
        }
    }
    
    public class filework {
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            System.out.print("请输入目录
    ");
            File file = new File(reader.nextLine());//获取输入的目录
            String[] all = file.list();//调用无参list方法获取全部文件名
            System.out.print("该目录下文件为:
    ");
            for(int i = 0;i<all.length;i++){//输出
                System.out.print(all[i]+"
    ");
            }
            System.out.print("请输入该目录下要求的文件类型
    ");
            type filetype = new type(reader.nextLine());
            String[] Type = file.list(filetype);//调用参数为文件类型的list方法获取该类文件名
            System.out.print("该目录下该文件类型的文件为:
    ");
            for(int i = 0;i<Type.length;i++){
                System.out.print(Type[i]+"
    ");
            }
        }
    }

    二、成功界面截图

    题目2(完全版):在上一题基础上,将这些文件中的某一个文件剪切到另外一个目录中。

    一、源程序

    /**剪切文件到另一目录
     * 2个类3个方法
     */
    package cn.edu.ccut.w1204t2;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileWriter;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.Writer;
    import java.util.Scanner;
    
    class type implements FilenameFilter{//创建FilenameFilter接口子类
        String str = null;
        type(String str){//定义构造方法
            this.str = "."+str;
        }
        public boolean accept(File dir, String name) {//重写accept方法
            return name.endsWith(str);//匹配后面字段
        }
    }
    
    public class cut {
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            System.out.print("请输入目录:
    ");
            String way = reader.nextLine();//暂存目录
            File file = new File(way);//获取输入的目录
            String[] all = file.list();//调用无参list方法获取全部文件名
            System.out.print("该目录下文件为:
    ");
            for(int i = 0;i<all.length;i++){//输出
                System.out.print(all[i]+"
    ");
            }
            System.out.print("请输入该目录下要求的文件类型:
    ");
            type filetype = new type(reader.nextLine());
            String[] Type = file.list(filetype);//调用参数为文件类型的list方法获取该类文件名
            System.out.print("该目录下该文件类型的文件为:
    ");
            for(int i = 0;i<Type.length;i++){
                System.out.print(Type[i]+"
    ");
            }
            System.out.print("请输入需要剪切的文件名:
    ");
            String cut = reader.nextLine();//暂存文件名
            File cutfile = new File(way+"\"+cut);//存入原文件
            System.out.print("请输入该文件需要移动到的目录:
    ");
            String cutway = reader.nextLine(); //暂存目录
            File cutlist = new File(cutway);//存入目录        
            File newfile = new File(cutway+"\"+cut);//存入新目录下新文件
            try {
                newfile.createNewFile();//创建同名文件
            } catch (IOException e) {
                e.printStackTrace();
            }
            InputStream inputStream = null;//读出原文件内容对象创建
            BufferedInputStream bufferedInputStream = null;
            String data="";//内容暂存器
            Writer writer = null;//写入新文件内容对象创建
            BufferedWriter bufferedWriter = null;
            try {
                inputStream = new FileInputStream(cutfile);
                bufferedInputStream = new BufferedInputStream(inputStream);
                byte[] content = new byte[1024];//存储内容
                int count = 0;//记录长度
                while((count = bufferedInputStream.read(content, 0, 1024))!=-1){
                    data=data+new String(content, 0, count);//遍历到字节存入字符串
                }
                writer = new FileWriter(newfile);
                bufferedWriter = new BufferedWriter(writer);
                bufferedWriter.write(data);//字符串写入新文件
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                try {
                    bufferedInputStream.close();//关闭流
                    inputStream.close();
                    bufferedWriter.close();
                    writer.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            cutfile.delete();//删除原文件
        }
    }

    二、成功界面截图

     

     

  • 相关阅读:
    【python】10分钟教你用python打造贪吃蛇超详细教程
    盘点下那些年我们用过的编程工具IDE都有哪些
    帝国竞争算法(imperialist competitive algorithm, ICA )详解+Java代码实现
    10分钟教你使用Picgo+GitHub+ jsDelivr搭建CDN加速免费图床
    10分钟了解代码命名规范(Java、Python)
    什么是算法?从枚举到贪心再到启发式(下)-终于有人把邻域搜索讲清了!
    番茄路径优化系统介绍-专注于算法与路径优化VRP
    什么是算法?从枚举到贪心再到启发式(上)
    10分钟教你用Python打造学生成绩管理系统
    10分钟教你用Python中的Matplotlib绘制多图并合并展示
  • 原文地址:https://www.cnblogs.com/wangxiangyue/p/11981551.html
Copyright © 2011-2022 走看看