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

    一、题目

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

    二、代码

    filee.java

    package cn;
    
    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;
    
    public class Filee {
        public static void main(String[] args) {
            Scanner reader = new Scanner(System.in);
            System.out.println("输入一个路径");
            String path = reader.nextLine();
            File file = new File(path);
    
            // FilenameFilter fn=new Way(rail);
            String[] filenames = file.list();
            for (String name : filenames) {
                System.out.println(name);
            }
            System.out.println("输入查询后缀:");
            String rail = reader.nextLine();
            Way way = new Way(rail);
            String[] filenames2 = file.list(way);// 将查询后的文件名放入数组里
            for (String name : filenames2) {
                System.out.println(name);
            }
            System.out.println("请输入需要剪切的文件名:");
            String cutFileName = reader.nextLine();
            File file2 = new File(path + "\" + cutFileName);// 存入原文件
            System.out.println("请输入该文件需要移动到的目录:");
            String cutFileWay = reader.nextLine();
            File cutlist = new File(cutFileWay);// 存入目录
            File newfile = new File(cutFileWay + "\" + cutFileName);// 存入新目录下新文件
            try {
                newfile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
            InputStream ins = null;// 声明
            BufferedInputStream bins = null;
            Writer writer = null;
            BufferedWriter bw = null;
            String filedata = "";
            try {
                ins = new FileInputStream(file2);
                bins = new BufferedInputStream(ins);
                byte[] b = new byte[1024];
                int count = 0;
                try {
                    while ((count = bins.read(b, 0, 1024)) != -1) {
                        filedata = filedata + new String(b, 0, count);// 将字符串放入新文件
                    }
                    writer = new FileWriter(newfile);
                    bw = new BufferedWriter(writer);
                    bw.write(filedata);
    
                } catch (IOException e) {
                    e.printStackTrace();
                } 
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
            try {
                bins.close();
                ins.close();
                bw.close();
                writer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            file2.delete();
        }
    
    }
    
    class Way implements FilenameFilter {
        String type;
    
        Way(String type) {
            this.type = type;
        }
    
        public boolean accept(File dir, String name) {
            return name.endsWith(type);
        }
    }

    三、运行结果

     

     

  • 相关阅读:
    递归遍历树形json
    关于作用域理解的一道题
    微信站 返回上一页并刷新
    Vuex有哪些作用
    两段代码实现vue路由懒加载
    Vuex目录结构推荐
    售后打电话说现场设备出问题了,嵌入式工程师最想干什么?
    Qt编译出现cc1plus.exe: out of memory allocating 65536 bytes问题
    OpenCV计算机视觉编程攻略(第三版)源码
    C++ Json工具--Jsoncpp用法简介
  • 原文地址:https://www.cnblogs.com/leeyangtongxue/p/11999875.html
Copyright © 2011-2022 走看看