main関数のワイルドカードパラメータ
今日、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
私が珍しいのか、とにかく記録しておきます.