main関数のワイルドカードパラメータ

997 ワード

今日、javaのmain関数にパラメータを渡すときに、パラメータはワイルドカードを使用して複数のファイルを表すことができます.たとえば、次のような問題があります.
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

私が珍しいのか、とにかく記録しておきます.