zoukankan      html  css  js  c++  java
  • java之io之File类的list()方法过滤目录的使用

    java的io的知识中,File类必须掌握。File类是对文件或者文件夹的封装。它本身并不能对所封装的文件进行读写,它封装的只是文件或文件夹的周边知识,比如 大小啦,创建日期啦,路径啦等等。

    如果File封装的文件夹,File类的list()方法可以将此文件夹下的所有文件夹和文件已字符串数组的形式返回。

    list(FilenameFilter)可以对返回的字符串数组进行过滤,取自己想要的字符串。

    ?打印文件夹下的.java文件

    实现1

    package com.westward.io;
    
    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.regex.Pattern;
    
    public class ListFileDemo {
        public static void main(String[] args) {
            File file= new File("..");
            listFileJava(file);
        }
        
        public static void listFileJava(File file){
            for (String string : file.list(new DirFilter(".*\.java"))) {
                System.out.println(string);
            }
            
        }
    }
    
    class DirFilter implements FilenameFilter{
        private Pattern pattern;
        public DirFilter(String regex) {
            // TODO Auto-generated constructor stub
            pattern= Pattern.compile(regex);
        }
        @Override
        public boolean accept(File dir, String name) {
            // TODO Auto-generated method stub
            return pattern.matcher(name).matches();
        }
        
    }

    实现2  匿名内部类的形式

    package com.westward.io;
    
    import java.io.File;
    import java.io.FilenameFilter;
    import java.util.regex.Pattern;
    
    public class ListFileDemo2 {
        public static void main(String[] args) {
            File file= new File("..");
            final String regex= ".*\.java";
            String[] files= file.list(new FilenameFilter() {
                private Pattern pattern= Pattern.compile(regex);
                @Override
                public boolean accept(File dir, String name) {
                    return pattern.matcher(name).matches();
                }
            });
            for (String string : files) {
                System.out.println(string);
            }
        }
    }

    output:
    Demo.java
    hha.java
    ln.java

    注意:

    匿名内部类若 需要访问外部方法的局部变量,那么局部变量必须被 final 所修饰。

  • 相关阅读:
    字符串转日期
    arcgis server 10.1 PublishingTools工具无法启动Service's containing process has crashed
    net中捕获摄像头视频的方式及对比
    sql server下划线查询
    字符串与图片的Base64编码转换操作
    自定义DataSet
    判断窗体是否已存在实例
    字符串二次处理,补位+截取
    vue踩坑-This relative module was not found
    ajax和axios请求本地json数据对比
  • 原文地址:https://www.cnblogs.com/westward/p/5544371.html
Copyright © 2011-2022 走看看