java之io之File类的list()方法过滤目录的使用
2024-08-26 18:40:28
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 所修饰。
最新文章
- Appium路线图及1.0正式版发布
- [转载]开机出现A disk read error occurred错误
- CSS 高级
- 为什么我们需要使用 touch 命令
- 关于promise
- docker 镜像运行问题
- 阿里巴巴开源项目汇总-(JAVA)
- leetcode — powx-n
- Python学习(七) —— 装饰器、迭代器、生成器
- 100-days: sixteen
- Xcode编译警告Assigning to &#39;id<;XXXDelegat>; ——Nullable&#39; from incompatible type &#39;XXXView *const_strong&#39;
- Windows 7 安装VS2008 SP1 失败
- (原)linux下利用cmake来编译jthread开源库
- express-session相关用法
- c++ 多继承 public
- 关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application &#39;UIKitApplication:xxx.xxx.xxx&#39; was killed by jetsam.
- uvaoj 10474 - Where is the Marble?(sort+lower_bound)
- 【算法笔记】B1026 程序运行时间
- HL7 2.6 解析(XML)
- 51nod 1060 最复杂的数 反素数