今天发现一个之前没有注意过的问题,在给java的main函数传参时,参数可以使用通配符来表示多个文件,例如:
其中"*.xml"代表当前文件夹下所有的xml文件。
之前一直以为main函数会认为"*.xml"只是单一的参数值,即String[] args的length为1,但实际测试后发现,main函数会将"*.xml"所匹配的所有文件名作为多个参数值传入。
见代码:
这是我在本地传入"*.txt"后的测试结果
可能是我少见多怪了,不管怎样,先记录下。
java -jar post.jar *.xml
其中"*.xml"代表当前文件夹下所有的xml文件。
之前一直以为main函数会认为"*.xml"只是单一的参数值,即String[] args的length为1,但实际测试后发现,main函数会将"*.xml"所匹配的所有文件名作为多个参数值传入。
见代码:
public static void main(String[] args) throws IOException {
System.out.println(args.length);
for(String arg : args){
File file = new File(arg);
System.out.println(file.getName());
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while((line = br.readLine()) != null){
System.out.println(line);
}
}
}
这是我在本地传入"*.txt"后的测试结果
3
demo1.txt
123
456
demo2.txt
223
456
demo3.txt
323
456
可能是我少见多怪了,不管怎样,先记录下。