java编程思想上的这段代码是什么意思?讲I/O那块的

import java.io.File;
import java.util.Arrays;

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 dirlist:list){
System.out.println(dirlist+"111");
}
}
}
}

import java.io.File;
import java.io.FilenameFilter;
import java.util.regex.Pattern;

public class DirFilter implements FilenameFilter{
private Pattern p;
public DirFilter(String regex){
p=Pattern.compile(regex);
}
@Override
public boolean accept(File dir, String name) {
return p.matcher(name).matches();
}
}
1、为什么new File()括号里是个点?
2、我在那个run 配置那个arguments那里写了”D.*\.java“,是这样写的么?书上有句注释是这样写的://{Args:"D.*\.java"}是什么意思?
他的意思是说获得目录里的指定后缀名的文件列表,但就是不懂它的操作是什么意思。
补充一下:在那个run 配置那个arguments那里写了”D.*\.java“运行也没有结果,我D盘是有.java文件的

1、为什么new File()括号里是个点?
获取当前路径
2、我在那个run 配置那个arguments那里写了”D.*\.java“,是这样写的么?书上有句注释是这样写的://{Args:"D.*\.java"}是什么意思?
这个的意思是给程序传递一个参数:“D.*\.java”,这个参数的主要用途在这儿new DirFilter(args[0]) // args[0]就表示“D.*\.java”,DirFilter如继承所示,是一个filter类,主要用来过滤符合要求的文件名,也就是以.java结尾的文件名。追问

但为什么运行之后获取不到文件列表,D盘下是有.java文件的啊

追答

你用的是eclipse运行的吧?一直用记事本写代码,这个我不怎么清楚,如果可以的话,你在dos界面下运行下试试

还有一点,你的.java是直接在D盘下,还是在D盘下的某个文件夹中

最后,你是不是在arguments中直接写的D.*\.java这个,这个的话,应该是不对的, 它会用"D.*\.,java".match(文件名)。肯定没结果。 你只需要在arguments中写*\.java就可以

追问

直接在D盘下就有.java文件。写成*\.java的话,程序怎么知道是D盘下呢?另外改了之后运行,报的异常是Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
*\.java

追答

首先表示抱歉,上边的argument应该是“.*\.java”, 至于你那个抛错的原因,你可以看看正则表达式的知识,

之前用D.*\.java 没有结果的原因可能是你当前的project的根目录不再d盘,
你可以打印下path.getAbsolutePath()看看

我刚才试了下,“.*\.java” 没有问题,你再试试

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-17
为什么new File()括号里是个点?
答:标示当前路径。
我在那个run 配置那个arguments那里写了”D.*\.java“,是这样写的么?
答:应该是不对的。具体看下面回答.
//{Args:"D.*\.java"}是什么意思?
答:这是一个泛指,比如%java_home%没有这个路径,意思是说你的java安装路径,D.*\.java 标示D盘下虽有的java文件。追问

那要怎么做才能得到.java文件列表?

第2个回答  2011-11-17
”D.*\.java“中的“*”表示的是任意的.java文件,你要查找的文件,需具体给定名称才可以被找到追问

假如要找D盘下的.java文件,该怎么写?

第3个回答  2011-11-17
继续等待 啊