• 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);
                }
            }
    
        }
    }
    
  • 相关阅读:
    组合和继承
    解决不了问题
    [zz]shared_ptr 在 stl容器中排序的陷阱
    char ** 初始化
    [zz]c++ list sort方法
    [zz]ZeroMQ的学习和研究
    shared_prt自己使用记录
    rapidxml使用笔记
    HDOJ_ACM_I love sneakers!
    HDOJ_ACM_PiggyBank
  • 原文地址:https://www.cnblogs.com/zut-syp/p/13570766.html
Copyright © 2020-2023  润新知