美文网首页JavaEE
java File,FileFilter

java File,FileFilter

作者: 会摄影的程序员 | 来源:发表于2019-01-25 17:11 被阅读1701次

    1. File类;

    文件和目录路径名的抽象表示

    1.1 构造

    1. File(String filepath);
      直接写路径

    2. File(String parent, String path);
      parent 父路径
      path 子路径

    3. File(File parent,String path)
      parent 先构造一个File
      path 这个File下面的路径

    1.2 获取方法

    1. String getAbsoluteFile();
      返回绝对路径
    2. String getName();
      返回文件或目录名
    3. String getPath();
      返回路径
    4. Long length();
      返回文件长度
      只能获取文件的,不能获取文件夹的

    demo:

     public static void readPath(){
            File file = new File("fileTest.txt");
            File file2 = new File("C:\\Users\\81022\\Desktop","无标题.png");
    
            String fileAbsPath = file.getAbsolutePath();
            String fileName = file.getName();
            String filePath = file.getPath();
            Long fileLenght = file.length();
    
            System.out.println(fileAbsPath);
            System.out.println(fileName);
            System.out.println(filePath);
            System.out.println(fileLenght);
        }
    

    1.3 File对象的删除和创建方法

    1.3.1 创建方法

    1. 创建文件
      boolean createNewFile()
      //创建一个文件(只能是文件,不能是文件夹)
      //如果存在则不会创建

    2. 创建文件夹
      boolean mkdir();
      //只能创建文件夹
      //如果存在则不会创建

    demo:

        public void newFileDemo() throws IOException {
            File file = new File("C:\\Users\\81022\\Desktop\\111.txt");
            System.out.println(file);
            boolean b1 = file.createNewFile();
            System.out.println(b1);
        }
    
        public void  mkdirDemo(){
            File file = new File("C:\\Users\\81022\\Desktop\\111");
            boolean b1 = file.mkdirs();
            System.out.println(b1);
        }
    

    1.3.2 判断方法

    1. 判断是否是文件
      boolean isFile();
    2. 判断是否是文件夹
      boolean isDirectory();
    3. 判断文件或者文件夹是否存在
      boolean exist();

    1.3.3 删除方法

    boolean delete();
    只能删除当文件,或空文件夹

    1.4 其他方法

    1. String [] list();
      仅返回文件的文件名数组
    2. File[] listFiles();
      返回文件数组
      demo:
        public void listDemo(){
            File file = new File("C:\\Users\\81022\\Downloads");
            //list 方法
            String[] fileList = file.list();
            for (String stirng : fileList) {
                System.out.println(stirng);
            }
            //listFiles
            File[] filesList = file.listFiles();
            for (File file1 : filesList) {
                 System.out.println(file1.getAbsolutePath());
            }
        }
    

    删除某个目录下面全部文件demo:

    public class DeleteDemo {
        public static void main(String[] args){
            File file = new File("C:\\Users\\81022\\Downloads\\deleteTest");
            //先判断路径是否存在
            if (!isPath(file)){
                System.out.println("路径不存在!");
            }else {
                boolean result = deleteTest(file);
                if (result){
                    System.out.println("删除成功!");
                }else {
                    System.out.println("删除失败!");
                }
            }
        }
        public static boolean isPath(File file){
            return file.exists();
        }
        public static boolean deleteTest(File file){
            //如果是文件直接删除
            if (file.isFile()){
                return file.delete();
            }
            //如果不是文件
            //先删除 从而判断是否为空文件夹
            if (file.delete()){
                return true;
            }
            //删除不成功那么说明为非空文件夹
            File[] fileList = file.listFiles();
            for (File file1 : fileList) {
                deleteTest(file1);
                file1.delete();
            }
            return true;
        }
    }
    

    2 文件过滤器

    public class FileFilterDemo {
        public static void main(String[] args){
            String endString = ".txt";
            File file = new File("C:\\Users\\81022\\Downloads\\deleteTest");
    
            FileFilter fileFilter = new FileFilter() {
                @Override
                public boolean accept(File pathname) {
                    if (pathname.getName().endsWith(endString)){
                        return true;
                    }
                    return false;
                }
            };
    
            File[] fileArray = file.listFiles(fileFilter);
            for (File file1 : fileArray) {
                System.out.println(file1.getName());
            }
    
        }
    }
    

    相关文章

      网友评论

        本文标题:java File,FileFilter

        本文链接:https://www.haomeiwen.com/subject/yclvjqtx.html