`

找出指定目录.java结尾的文件

阅读更多

取出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);
		}
	}

}

 

分享到:
评论
1 楼 wf_fred 2013-04-04  
请问你所谓的运行参数在哪里输入的???

相关推荐

    遍历某文件夹下的 .txt 文件

    - 系统清理:在进行系统维护时,遍历文件夹可以找出不再需要的文件并删除它们。 - 统计分析:统计文件夹内文件的数量、大小等信息。 ### 2. Java 中遍历文件夹的方法 #### 2.1 使用 `java.io.File` 类 Java 提供了...

    Java提示解析时已到达文件结尾的解决方法

    首先,当你的Java程序抛出“解析时已到达文件结尾”的错误,第一步应该是仔细查看控制台输出的错误信息。这些信息会包含错误发生的文件名和行号,这对于定位问题至关重要。通过这个信息,你可以快速定位到代码中引发...

    java2实用教程第4版-习题解答.doc

    .`,这里指定了JRE中的运行时类库路径以及当前目录。 **5. 文件扩展名** - **知识点**: - Java源文件扩展名为`.java`。 - 字节码文件扩展名为`.class`。 **6. 编码风格** - **知识点**: - Java中有两种常见的...

    根据后缀名获取文件列表

    例如,我们可能需要找出所有图片文件(如.jpg、.png)或文档文件(如.docx、.pdf)。这个过程可以通过编程实现,下面将详细讲解如何根据后缀名获取文件列表。 首先,我们需要了解什么是文件后缀名。文件后缀名是...

    JAVA常见异常解析,面试用

    当Java虚拟机试图加载某个类,但在类路径中找不到对应的类文件时,将抛出此异常。确保类名、包名以及类路径设置正确,特别是从JAR文件或网络加载类时。 3. **java.lang.ArithmeticException**: 表示执行了非法的...

    找出哪几个数值的和接近目标值

    标题 "找出哪几个数值的和接近目标值" 描述了一个常见的算法问题,它涉及到寻找一组数值中的若干项,使得它们的和最接近于一个给定的目标值。在计算机科学和编程领域,这样的问题通常用于数据处理、数据分析或者优化...

    Java函数式编程(十一):遍历目录

    例如,以下代码会找出所有以`.java`结尾的文件: ```java Files.newDirectoryStream(Paths.get("fpij"), path -> path.toString().endsWith(".java")) .forEach(System.out::println); ``` 在这里,我们使用了`...

    java程序中处理一个包含诡异的不可见的字符。

    然后可以用十六进制转储工具查看这些字节,找出不寻常的值。 4. **日志记录**:在开发和调试过程中,将涉及到的字符串和变量值输出到日志,可以帮助识别潜在的问题。可以使用`System.out.println(new String(bytes,...

    Select_File.rar_select_file

    这些信息可以作为选择文件的标准,例如,你可以根据文件的修改日期来找出最近更新的文件。 4. 命令行工具:在命令行界面(如Windows的CMD或PowerShell,或Linux的Terminal),可以使用各种命令来查找和选择文件,如...

    Java异常详解.txt

    - **`EOFException`**:到达文件结尾前试图读取数据时抛出。 - **`FileNotFoundException`**:试图打开不存在的文件时抛出。 - **`NumberFormatException`**:字符串无法解析为数字时抛出。 ##### 检查性异常 - **...

    Editplus 3[1].0

    这是因为 EditPlus 的语法是设置文件采用的是绝对路径,而在你设置了语法文件之后,再把程序复制到其它目录,因而导致 EditPlus 无法找到该语法文件。 解决办法: 在主程序目录里,找到 Setting.ini 这是 EditPlus ...

    ACCP5.0s1Java6-9章测试

    - **求最大值**:使用`Arrays.stream(arr).max().getAsInt()`可方便地找出数组中的最大值。 以上知识点是Java编程基础的重要组成部分,理解并掌握这些内容对于ACCP5.0s1的学习至关重要。通过不断的练习和测试,...

    dex2jar 0.0.9.15 版

    此外,安全研究人员也可以利用dex2jar来检测恶意软件的行为模式,找出潜在的安全漏洞。 在实际操作中,dex2jar的使用步骤如下: 1. 下载并解压dex2jar工具。 2. 将需要分析的DEX文件放置在同一目录下。 3. 打开...

    Python-查找iOS或Android项目未使用的png并支持删除

    接下来,我们将这个列表与之前找到的所有PNG文件列表进行对比,找出未被引用的PNG文件。 为避免误删,可以先将这些未使用的PNG文件移动到一个单独的备份目录,而不是直接删除。这样,如果发现有误报,可以轻松恢复...

    实现图片过滤功能.doc

    这段代码的用途可能是在一个包含多种文件类型的目录中,快速找出并处理所有的图片文件。例如,在一个图片分享网站,服务器可能需要只显示这些特定格式的图片,而忽略其他非图片文件。或者在移动应用中,当用户上传...

    2021-2022计算机二级等级考试试题及答案No.15573.docx

    6. 算法分析的目的是评估算法的效率,以便找出潜在的改进空间。其他选项不是算法分析的主要目的。 7. 封装是面向对象编程的重要特性,它提高了类的重用性,但并不意味着不允许子类覆盖或重载方法,也不意味着类在...

    IIS整合tomcat6图文教程

    3. **错误排查**:如果遇到问题,检查IIS和Tomcat的日志文件,找出错误原因,进行相应的修复。 4. **备份与更新**:在进行任何重大配置更改之前,记得备份原有配置,以防出现问题后能快速恢复。同时,保持ISAPI ...

Global site tag (gtag.js) - Google Analytics