如何循环参数java?

时间:2015-12-12 17:30:02

标签: java loops arguments

我必须创建大量文件来保存不同对象的输出,我想知道是否有一种简单的方法使用循环,而不是每次都输入整个东西。目前,我这样做,很快变得笨拙:

public void createFile(String fn, String fn1, String fn2, String fn3, String fn4, String fn5, String fn6){
    java.io.File filei = new java.io.File("fn.txt" );       
    java.io.PrintWriter earth1 = new PrintWriter(file);
    java.io.File file1 = new java.io.File("fn1.txt" );
    java.io.PrintWriter sun1 = new PrintWriter(file1);
    java.io.File file2 = new java.io.File("fn2.txt" );
    java.io.PrintWriter mercury1 = new PrintWriter(file2);
    java.io.File file3 = new java.io.File("fn3.txt" );
    ...etc
}

因此,手动写出新文件的行。字符串fn的值为earth,fn1将为sun,fn2 mercury等。我想理想地使用for循环,但不知道如何循环参数!例如,我需要一种方法来创建一个循环来重新创建这个模式:

java.io.File filei = new java.io.File("fn.txt");
java.io.PrintWriter fn1 = new PrintWriter(filei);

java.io.File filei = new java.io.File("fn1.txt");
java.io.PrintWriter (fn1)1 = new PrintWriter(filei);

我需要每个参数的printwriter和文件。 printwriter需要一个名称,该名称是附加了数字1的参数。该文件需要命名为' argument.txt',所以fn.txt,fn1.txt等,我不确定我的代码目前是否会实现。我怀疑它将字面上命名文件fn,fn1等而不是使用参数所代表的字符串,但是在我完成我的更改之前无法检查,我需要循环。

这不简洁,可能不太清楚。如果不清楚,请告诉我,我会尝试更好地说出来。

2 个答案:

答案 0 :(得分:6)

传递List<String>String[]作为参数,而不是传递6个字符串。

或者将所有这些字符串放在方法开头的数组中,然后遍历该数组。

或者使用vararg参数,它允许在方法中接收数组时传递尽可能多的字符串作为参数(来自调用者):

public void createFile(String... fn) {
    for (String f : fn) {
        ...

在来电者中:

createFile("a", "b", "c");

答案 1 :(得分:0)

正如JB Nizet建议的那样,但我推荐的最佳方式是使用List fileNames作为输入参数。