• java File 类对操作系统文件目录进行操作:增删查


    File类

    1,概述

    File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。

    2,构造方法

    • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
    • public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的File实例。
    • public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的File实例。

    3,常用方法

    在计算机中,在我们操作目录的时候,这个.代表是当前目录,..代表父目录

    1,文件名相关的方法:

    • getAbsolutePath():返回文件或者目录的绝对路径
    • getPath():将此抽象路径名转换为路径名字符串
    • getName():返回文件名
    • renameTo(File file):把文件剪切为一个新的路径

    2,文件检测相关的方法:

    • boolean exists(): 判断File对象所对应的文件或目录是否存在
    • boolean canWrite(): 判断File对象所对应的文件和目录是否可写。如果是目录,表示是否可以在目录中创建文件。如果是文件,表示是否可以在文件中写入内容。
    • boolean canRead(): 判断File对象所对应的文件和目录是否可读。
    • boolean isFile(): 判断File对象所对应的是否是文件,而不是目录
    • boolean isDirectory(): 判断File对象所对应的是否是目录,而不是文件
    • boolean isAbsolute(): 判断File对象所对应的文件或目录是否是绝对路径。该方法消除了不通平台的差异,可以直接判断 File 对象是否为绝对路径。在Linux系统上如果文件开头是一个斜杠/那么是绝对路径,在windows系统上,如果文件开头是一个磁盘盘符,那么是绝对路径

    3,获取文件的常规信息:

    • long lastModified(): 返回文件的最后修改时间戳
    • long length(): 返回文件内容的长度

    4,文件增删:

    • boolean createNewFile(): File所对应的文件不存在时,该方法将新建一个该File对象所指定的新文件,如果创建成功则返回 true;否则返回false
    • boolean delete(): 删除File对象所对应的文件或路径

    5,目录相关的方法:

    • boolean mkdir(): 试图创建File所对应的目录,如果创建成功,则返回true; 否则返false 调用该方法时File对象必须对应一个路径,而不是一个文件
    • boolean mkdirs():创建File对应的目录,包括其父目录
    • String[] list(): 列出 File 象的所有子文件和路径名 ,返回String数组
    • File[] listFiles(): 列出File对象的所有子文件和路径,返回file数组。

    小测试:递归查找所有子目录下文件

    import javax.naming.Name;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FilenameFilter;
    
    /**
     * @ClassName JavaIOFileExample
     * @projectName: object1
     * @author: Zhangmingda
     * @description: XXX
     * date: 2021/4/16.
     */
    public class JavaIOFileExample {
        public static void main(String[] args) {
            File file = new File("输入输出文件读写/src/test");
            file.mkdir();   //创建目录
    //        String[] filelist = file.list((dir, fileName)-> fileName.endsWith(".txt")); //过滤器
            String[] nameList = file.list();
            //打印文件名
            for (String f : nameList){
                System.out.println(f);
            }
            //打印目录下所有文件
            listDir(file);
        }
    
        /**
         * 简单封装一下便于入口只需指定一个目录名
         * @param file
         */
        public static void listDir(File file){
            listDir(file,0);
        }
    
        /**
         * @param dir File 对象
         * @param spaceNum 需要打印的空格数,便于区分层级
         */
        public static void listDir(File dir, int spaceNum){
            for(int i=0; i<spaceNum; i++){
                System.out.print(" ");
            }
            System.out.println(dir.getName());
            File[] files = dir.listFiles();
            for(File subDirOrFile : files){
                if(subDirOrFile.isDirectory()){
                    listDir(subDirOrFile,spaceNum + 2);
                }else{
                    for(int i=0; i<spaceNum + 2; i++){
                        System.out.print(" ");
                    }
                    System.out.println(subDirOrFile.getName());
                }
            }
        }
    }

  • 相关阅读:
    Python 中多线程之 _thread
    Python ftplib 模块关于 ftp的下载
    nessus 漏洞扫描安装和使用
    实战medusa暴力破解
    浅谈python 中正则的一些函数
    一句话木马和中国菜刀的结合拿webshell
    浅说套接字socket做个小小的监控
    小巧的ssh客户端
    统计字符串的数字,英文字母,空格及其他的个数
    mysql字符串函数
  • 原文地址:https://www.cnblogs.com/zhangmingda/p/14669558.html
Copyright © 2020-2023  润新知