取出D盘下所有的以java为扩展名的文件。
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
/**
* @author whp
* @Email whp@ehoo.cn
* @Jul 26, 2011
*
*/
public class DirList {
public static void main(String[] args) {
File path = new File("d:\\");
String[] list;
if (args.length == 0) {
list = path.list();
} else {
list = path.list(new DirFilter(args[0]));
}
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
for (String dirItem : list) {
System.out.println(dirItem);
}
}
}
class DirFilter implements FilenameFilter {
private Pattern pattern;
public DirFilter(String regex) {
pattern = Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
}
如果在运行参数里输入 .{3,3}\.java 代表 找出文件名为3位,切只显示文件名为三位的,扩展名为.java的文件。
. 的意思是任意字符。 {3,3}的意思是文件名是3位的。如果把{3,3}改成{3,N},其中N代表的是一个数字,可以是任意多个。如果改成{3,}代表,文件名最少为三位或多位的文件。\.的意思是对.进行转义,因为.默认的意思是表示任何一个字符。
上面的例子可以用一个内部类来完成:
package io;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
/**
* @author whp
* @Email whp@ehoo.cn
* @Jul 27, 2011
*
*/
public class DirList2 {
private static FilenameFilter filter(final String regex) {
return new FilenameFilter() {
private Pattern pattern = Pattern.compile(regex);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
};
}
/**
* @param args
*/
public static void main(String[] args) {
File path = new File("d:\\");
String[] list;
list = path.list(filter(".*\\.java"));// list方法会为目录下面的每一个文件名调用accept(),判断该文件是否包含在内,判断结果由accept返回的boolean值来表示。
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
for (String dirItem : list) {
System.out.println(dirItem);
}
}
}
上面的程序,可以进一步改进。如下
package io;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
/**
* @author whp
* @Email whp@ehoo.cn
* @Jul 27, 2011
*
*/
public class DirList3 {
/**
* @param args
*/
public static void main(String[] args) {
File path = new File("d:\\");
String[] list;
list = path.list(new FilenameFilter() {
private Pattern pattern = Pattern.compile(".*\\.java");
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
});// list方法会为目录下面的每一个文件名调用accept(),判断该文件是否包含在内,判断结果由accept返回的boolean值来表示。
Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);
for (String dirItem : list) {
System.out.println(dirItem);
}
}
}
分享到:
相关推荐
- 系统清理:在进行系统维护时,遍历文件夹可以找出不再需要的文件并删除它们。 - 统计分析:统计文件夹内文件的数量、大小等信息。 ### 2. Java 中遍历文件夹的方法 #### 2.1 使用 `java.io.File` 类 Java 提供了...
首先,当你的Java程序抛出“解析时已到达文件结尾”的错误,第一步应该是仔细查看控制台输出的错误信息。这些信息会包含错误发生的文件名和行号,这对于定位问题至关重要。通过这个信息,你可以快速定位到代码中引发...
.`,这里指定了JRE中的运行时类库路径以及当前目录。 **5. 文件扩展名** - **知识点**: - Java源文件扩展名为`.java`。 - 字节码文件扩展名为`.class`。 **6. 编码风格** - **知识点**: - Java中有两种常见的...
例如,我们可能需要找出所有图片文件(如.jpg、.png)或文档文件(如.docx、.pdf)。这个过程可以通过编程实现,下面将详细讲解如何根据后缀名获取文件列表。 首先,我们需要了解什么是文件后缀名。文件后缀名是...
当Java虚拟机试图加载某个类,但在类路径中找不到对应的类文件时,将抛出此异常。确保类名、包名以及类路径设置正确,特别是从JAR文件或网络加载类时。 3. **java.lang.ArithmeticException**: 表示执行了非法的...
标题 "找出哪几个数值的和接近目标值" 描述了一个常见的算法问题,它涉及到寻找一组数值中的若干项,使得它们的和最接近于一个给定的目标值。在计算机科学和编程领域,这样的问题通常用于数据处理、数据分析或者优化...
例如,以下代码会找出所有以`.java`结尾的文件: ```java Files.newDirectoryStream(Paths.get("fpij"), path -> path.toString().endsWith(".java")) .forEach(System.out::println); ``` 在这里,我们使用了`...
然后可以用十六进制转储工具查看这些字节,找出不寻常的值。 4. **日志记录**:在开发和调试过程中,将涉及到的字符串和变量值输出到日志,可以帮助识别潜在的问题。可以使用`System.out.println(new String(bytes,...
这些信息可以作为选择文件的标准,例如,你可以根据文件的修改日期来找出最近更新的文件。 4. 命令行工具:在命令行界面(如Windows的CMD或PowerShell,或Linux的Terminal),可以使用各种命令来查找和选择文件,如...
- **`EOFException`**:到达文件结尾前试图读取数据时抛出。 - **`FileNotFoundException`**:试图打开不存在的文件时抛出。 - **`NumberFormatException`**:字符串无法解析为数字时抛出。 ##### 检查性异常 - **...
这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...
- **求最大值**:使用`Arrays.stream(arr).max().getAsInt()`可方便地找出数组中的最大值。 以上知识点是Java编程基础的重要组成部分,理解并掌握这些内容对于ACCP5.0s1的学习至关重要。通过不断的练习和测试,...
此外,安全研究人员也可以利用dex2jar来检测恶意软件的行为模式,找出潜在的安全漏洞。 在实际操作中,dex2jar的使用步骤如下: 1. 下载并解压dex2jar工具。 2. 将需要分析的DEX文件放置在同一目录下。 3. 打开...
接下来,我们将这个列表与之前找到的所有PNG文件列表进行对比,找出未被引用的PNG文件。 为避免误删,可以先将这些未使用的PNG文件移动到一个单独的备份目录,而不是直接删除。这样,如果发现有误报,可以轻松恢复...
这段代码的用途可能是在一个包含多种文件类型的目录中,快速找出并处理所有的图片文件。例如,在一个图片分享网站,服务器可能需要只显示这些特定格式的图片,而忽略其他非图片文件。或者在移动应用中,当用户上传...
6. 算法分析的目的是评估算法的效率,以便找出潜在的改进空间。其他选项不是算法分析的主要目的。 7. 封装是面向对象编程的重要特性,它提高了类的重用性,但并不意味着不允许子类覆盖或重载方法,也不意味着类在...
3. **错误排查**:如果遇到问题,检查IIS和Tomcat的日志文件,找出错误原因,进行相应的修复。 4. **备份与更新**:在进行任何重大配置更改之前,记得备份原有配置,以防出现问题后能快速恢复。同时,保持ISAPI ...