博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对 Thinking in java 4th Edition I/O DirList.java的疑问
阅读量:6983 次
发布时间:2019-06-27

本文共 1822 字,大约阅读时间需要 6 分钟。

hot3.png

以下原文代码:

//: io/DirList.java// Display a directory listing using regular expressions.// {Args: "D.*\.java"}import java.util.regex.*;import java.io.*;import java.util.*;public class DirList {    public static void main(String[] args) {        File path = new File(".");        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();}} /* Output:DirectoryDemo.javaDirList.javaDirList2.javaDirList3.java*/

没用IDE的时候  默认目录 path 为当前路径(class文件) 还是没有结果 因为 String数组list的值全部为文件名(不包括路径)

作者给出的 D.*\.java 匹配不到任何结果 

如果参数为 .*\.java ,而且当前目录又恰好有java文件时 正确结果。

使用eclipse

默认path为工程目录

问题关键在于

list = path.list(new DirFilter(args[0]));

执行这句时 path 还是默认的项目路径 

对项目路径筛选? 好像作者原意是筛选D盘吧? 当然跟我们看到的一样没有结果。

以下改动达到同样效果

import java.util.regex.*;import java.io.*;import java.util.*;public class Fuck {public static void main(String[] args) {	File file = new File("D:\\");	String[] list;	list = file.list(new DirFilter(".*.java"));       //.*表示任意字符(字符数大于1)	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();	}}/* Output:Test.java*/

模模糊糊看的英文原版,哪里理解错了请大神们指教   0(=.=)0

转载于:https://my.oschina.net/u/2442807/blog/496252

你可能感兴趣的文章
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
查看>>
敏捷开发团队管理系列之一:序言与出发点
查看>>
挂载磁盘出错
查看>>
Git详解之三 Git分支
查看>>
我的友情链接
查看>>
洛谷——P1403 [AHOI2005]约数研究
查看>>
为什么硬盘只能有四个主分区
查看>>
IT十八掌掌第二天课程总结
查看>>
职业SNS天际网:透视“屌丝文化” 解析当今职场
查看>>
Leetcode 29. Divide Two Integers
查看>>
Kubernetes 1.5集成heapster
查看>>
清华赵骥主任与CIO石海军研讨互联网信息化
查看>>
tnsname.ora文件解析
查看>>
论文:论项目的计划和监控
查看>>
linux启动引导过程 grub和mbr
查看>>
lnmp环境安装
查看>>
Codeforces Round #438 868A/B/C
查看>>
CSS面试题目及答案
查看>>
SQL截取字段字符串的方法
查看>>
Redis学习——数据结构介绍(四)
查看>>