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 所修饰。

  • 相关阅读:
    linux基本命令
    操作系统
    罗马数字和整型的关系
    LightOJ 1234 Harmonic Number(打表 + 技巧)
    LightOJ 1236 Pairs Forming LCM (LCM 唯一分解定理 + 素数筛选)
    LightOJ 1245 Harmonic Number (II)(找规律)
    LightOJ 1259 Goldbach`s Conjecture (哥德巴赫猜想 + 素数筛选法)
    LightOJ 1282 Leading and Trailing (快数幂 + 数学)
    LightOJ 13361336
    hdu 5510 Bazinga
  • 原文地址:https://www.cnblogs.com/westward/p/5544371.html
Copyright © 2011-2022 走看看