专栏首页cwl_JavaJava工具集-文件工具类

Java工具集-文件工具类

  1. 代码示例
package com.simple.util.file;

import java.io.File;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * @program: simple_tools
 * @description: 文件工具类
 * @author: ChenWenLong
 * @create: 2019-11-18 11:46
 **/
public class FileUtils {

    //文件名称集合
    public static List<String> fileList = new ArrayList<>();

    /**
     * 功能描述:
     * 〈递归获取文件名称〉
     *
     * @params : [inputFile]
     * @return : void
     * @author : cwl
     * @date : 2019/11/18 14:05
     */
    public static void fileRecursion(File inputFile){
        File[] files = inputFile.listFiles();
        for (File file : files) {
            if(file.isDirectory()){
                fileRecursion(file);
            }
            fileList.add(file.getName());
        }
    }

    /**
     * 功能描述:
     * 〈获取文件的绝对路径〉
     *
     * @params : [fileName]
     * @return : java.net.URL
     * @author : cwl
     * @date : 2019/12/31 10:07
     */
    public URL getDefaultFile(String fileName){
       return this.getClass().getClassLoader().getResource(fileName);
    }

    /**
     * 功能描述:
     * 〈获取文件的相对路径〉
     *
     * @params : [baseDir, file]
     * @return : java.lang.String
     * @author : cwl
     * @date : 2019/12/31 10:08
     */
    public static String getRelativePath(File baseDir,File file) {
        if(baseDir.equals(file))
            return "";
        if(baseDir.getParentFile() == null)
            return file.getAbsolutePath().substring(baseDir.getAbsolutePath().length());
        return file.getAbsolutePath().substring(baseDir.getAbsolutePath().length()+1);
    }

    /**
     * 功能描述:
     * 〈查询某个目录下的所有文件〉
     *
     * @params : [dir]
     * @return : java.util.List<java.io.File>
     * @author : cwl
     * @date : 2019/12/31 10:08
     */
    public static List<File> searchAllFile(File dir) {
        ArrayList arrayList = new ArrayList();
        searchFiles(dir,arrayList);
        return arrayList;
    }

    /**
     * 功能描述:
     * 〈递归获取某个目录下的所有文件〉
     *
     * @params : [dir, collector]
     * @return : void
     * @author : cwl
     * @date : 2019/12/31 10:08
     */
    public static void searchFiles(File dir,List<File> collector) {
        if(dir.isDirectory()) {
            File[] subFiles = dir.listFiles();
            for(int i = 0; i < subFiles.length; i++) {
                searchFiles(subFiles[i],collector);
            }
        }else{
            collector.add(dir);
        }
    }

    /**
     * 功能描述:
     * 〈创建文件〉
     *
     * @params : [dir, file]
     * @return : java.io.File
     * @author : cwl
     * @date : 2019/12/31 10:08
     */
    public static File mkdir(String dir,String file) {
        if(dir == null) throw new IllegalArgumentException("dir must be not null");
        File result = new File(dir,file);
        if(result.getParentFile() != null) {
            result.getParentFile().mkdirs();
        }
        return result;
    }
} 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java工具集-properties文件工具类

    cwl_java
  • 性能优化-jstack的使用

    有些时候我们需要查看下jvm中的线程执行情况,比如,发现服务器的CPU的负载突然增高了、出现了死锁、死循环等,我们该如何分析呢?

    cwl_java
  • 快速学习-Sentinel 流量控制

    FlowSlot 会根据预设的规则,结合前面NodeSelectorSlot、ClusterNodeBuilderSlot、StatistcSlot 统计出来的...

    cwl_java
  • Java 学习笔记(1)——java基础语法

    最近抽时间在学习Java,目前有了一点心得,在此记录下来。 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础...

    Masimaro
  • 【小家Spring】资源访问利器---Spring提供的Resource接口以及它的常用子类源码分析

    资源是一个抽象的概念,什么是资源?我们已知Spring中有很多xml配置文件,同时还可能自建各种properties资源文件,还有可能进行网络交互,收发各种文件...

    YourBatman
  • 通过网页获取访客的QQ号码

    现在有些互联网公司在开发一种软件,插入一段js代码到网站的任意页面(如首页),如果访客访问了网页,并且访客的电脑上打开并登录了QQ,那么就能获取到访客的QQ号码...

    崔文远TroyCui
  • 简单五子棋,没有电脑AI

      刚学了C#委托,做了个五子棋练习,把前台绘制和后台逻辑分开,前台绘制方法用委托传给后台逻辑。

    用户6362579
  • ConcurrentHashMap总结

    但是这个HashMap不能随便地进行迭代,因为它只是简单包装了HashMap,而回看HashMap的实现,我们可以发现,对于冲突的key,形成一个链表,明显如果...

    吾爱小白
  • Hive 进阶应用 - 泛型函数

    泛型函数 (Generic Function) 存在的意义,解决了运行时参数类型多变,而标准函数无法一一匹配的情况。以判断某变量是否为 Null 而赋予不同默认...

    Lenis
  • java agent 及字节码技术得到 DNS 时间流程尝试(如何对jdk 代码进行AOP操作)

    想说一下这个意义吧,单纯的只是为了得到dns 的时间 好像并没有很大的意义或者值得研究的只是一小部分,但不只是对InetAddress.getByName 方法...

    猎户星座1

扫码关注云+社区

领取腾讯云代金券