zoukankan      html  css  js  c++  java
  • JavaSE学习笔记

    • 主要用于文件和目录的创建、删除和查询等操作,Java 把电脑中的文件封装成了 File 类,在编写代码的时候我们可以使用 File 类来对文件或者文件夹进行操作。

    分隔符

    public class Main {
        public static void main(String[] args) {
            //路径分隔符,在window中,分割两个路径使用 ";"
            //在linux中分割两个路径使用 ":"
            String pathSeparator = File.pathSeparator;
            System.out.println(pathSeparator); // ;
    
            //文件名称分隔符,在window中文件名称使用 "" 来分隔
            //在linux中使用 "/" 来分隔文件名称
            String separator = File.separator;
            System.out.println(separator);// 
        }
    }
    

    构造方法

    public class Main {
        public static void main(String[] args) {
            File file = new File("C:\Users\17388\Desktop\1.txt");
            System.out.println(file); //C:Users17388Desktop1.txt
            String parent = "C:\Users\17388\Desktop";
            String child = "1.txt";
            File file1 = new File(parent, child);
            System.out.println(file1);
        }
    }
    

    常用方法

    public class Main {
        public static void main(String[] args) throws IOException {
            File file = new File("1.txt");
            System.out.println(file); //1.txt,toString内部调用了getPath
            //获取文件绝对路径
            System.out.println(file.getAbsolutePath());//D:ComputerProjectjava1.txt
            //获取创建时的路径
            System.out.println(file.getPath());//1.txt
            //获取文件名
            System.out.println(file.getName());//1.txt
            //获取文件的字节数,如果不是文件或者文件不存在返回0
            System.out.println(file.length());
            //判断文件是否存在
            System.out.println(file.exists());//false
            //判断是否是文件,路径不存在返回false
            System.out.println(file.isFile());//false
            //判断当前路径是否是目录,路径不存在返回false
            System.out.println(file.isDirectory());//false
    
            //文件不存在则创建文件,否则不创建,只能创建文件
            boolean flag = file.createNewFile();
            System.out.println(flag);//true
            if (file.exists()) {
                System.out.println(file.isFile());//true
                System.out.println(file.isDirectory());//false
            }
    
            File file1 = new File("1");
            //创建单级目录
            boolean flag1 = file1.mkdir();
            System.out.println(flag1);//true
    
            File file2 = new File("11\111");
            //创建多级目录
            boolean flag2 = file2.mkdirs();
            System.out.println(flag2);//true
    
            //删除文件或者目录
            System.out.println(file.delete());
            System.out.println(file1.delete());
            System.out.println(file2.delete());
        }
    }
    

    遍历目录

    public class Main {
        public static void main(String[] args) throws IOException {
            File file = new File("D:\Computer\Project\java");
            String[] list = file.list();
            for (String s : list) {
                System.out.println(s);
            }
    
            File[] files = file.listFiles();
            for (File file1 : files) {
                System.out.println(file1);
            }
    
        }
    }
    

    递归读取目录及其子目录文件

    public class Main {
        public static void main(String[] args) throws IOException {
            File file = new File("D:\Computer\Project\java");
            printAllFile(file);
        }
    
        private static void printAllFile(File file) {
            System.out.println(file);
            File[] files = file.listFiles();
            for (File file1 : files) {
                if(file1.isFile()) {
                    System.out.println(file1);
                } else {
                    printAllFile(file1);
                }
            }
        }
    }
    

    递归查找指定条件文件

    public class Main {
        public static void main(String[] args) throws IOException {
            File file = new File("D:\Computer\Project\java");
            printAllFile(file);
        }
    
        private static void printAllFile(File file) {
            //System.out.println(file);
            File[] files = file.listFiles();
            for (File file1 : files) {
                if(file1.isFile()) {
                    if(file1.getName().toLowerCase().endsWith(".iml")) {
                        System.out.println(file1);
                    }
                } else {
                    printAllFile(file1);
                }
            }
        }
    }
    

    文件过滤器

    • 使用 FileFilter 过滤器接口,在遍历目录的同时,调用其中的 accept 方法将其中不符合要求的文件过滤掉,然后在进行判断输入即可。(面向接口编程)
    public class Main {
        public static void main(String[] args) throws IOException {
            File file = new File("D:\Computer\Project\java");
            printAllFile(file);
        }
    
        private static void printAllFile(File file) {
            //我们在遍历目录的同时,调用了过滤器中的方法,将不符合要求的文件过滤掉
    //        File[] files = file.listFiles(new FileFilter() {
    //            @Override
    //            public boolean accept(File pathname) {
    //                if (pathname.isDirectory()) {
    //                    return true;
    //                } else {
    //                    return pathname.getName().toLowerCase().endsWith(".iml");
    //                }
    //            }
    //        });
    //        for (File file1 : files) {
    //            if(file1.isDirectory()) {
    //                printAllFile(file1);
    //            } else {
    //                System.out.println(file1);
    //            }
    //        }
    
            File[] files1 = file.listFiles(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    return new File(dir, name).isDirectory() ||
                            name.toLowerCase().endsWith(".java");
                }
            });
            for (File file1 : files1) {
                if (file1.isDirectory()) {
                    printAllFile(file1);
                } else {
                    System.out.println(file1);
                }
            }
    
        }
    }
    
  • 相关阅读:
    HTB-靶机-Charon
    第一篇Active Directory疑难解答概述(1)
    Outlook Web App 客户端超时设置
    【Troubleshooting Case】Exchange Server 组件状态应用排错?
    【Troubleshooting Case】Unable to delete Exchange database?
    Exchange Server 2007的即将生命周期,您的计划是?
    "the hypervisor is not running" 故障
    Exchange 2016 体系结构
    USB PE
    10 months then free? 10个月,然后自由
  • 原文地址:https://www.cnblogs.com/zut-syp/p/13570766.html
Copyright © 2011-2022 走看看