• 面向对象 (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();//删除原文件
        }
    }

    二、成功界面截图

     

     

  • 相关阅读:
    浏览器操作API
    自动化测试简介
    常用元素操作API
    Selenium环境搭建
    等待操作
    IOS OpenGL ES GPUImage 图像镜像 GPUImageTransformFilter
    IOS OpenGL ES GPUImage 图像源混合 GPUImageSourceOverBlendFilter
    IOS OpenGL ES GPUImage 图像加深混合 GPUImageDarkenBlendFilter
    IOS OpenGL ES GPUImage 图像透明混合 GPUImageAlphaBlendFilter
    IOS OpenGL ES GPUImage 图像平移 GPUImageTransformFilter
  • 原文地址:https://www.cnblogs.com/wangxiangyue/p/11981551.html
Copyright © 2020-2023  润新知