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

  • 相关阅读:
    C# vb实现浮雕特效滤镜效果
    一张图看懂SharpImage
    C#控制操控操作多个UVC摄像头设备
    C#读写修改设置调整UVC摄像头画面-缩放
    继承多态绕点 Java篇
    继承多态绕点 C#篇
    lock关键字理解
    关于C#迭代器
    关于排列组合中组合结果
    C#与Java中相等关系
  • 原文地址:https://www.cnblogs.com/westward/p/5544371.html
Copyright © 2011-2022 走看看