为数组中的每个项创建一个文件,并为另一个数组中的每个项写入内容?

时间:2014-05-09 13:24:52

标签: java arrays for-loop

当我运行程序时,它会创建文件,但它会为每个文件循环文件内容3次而不是循环一次。我相信我的for循环是如何设置的。

如何更正以下程序,为一个数组fileNameAry中的每个项目创建一个文件,并使用另一个数组fileContentAry中的内容填充新文件的第一行,每个文件后的其他行(每个文件4行)。

确保每个文件只需要4行的最佳方法是什么?如果这个代码可以更好地组织或更有效地循环,我将如何去做?

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package createfileloop;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;

/**
 *
 * @author DeveloperJC
 */
public class CreateFileLoop {
    public static void main(String[] args) throws IOException{  
    String[] fileNameAry = new String[]{
        "FirstFile.txt","SecondFile.txt","ThirdFile.txt"
    };
    String[] fileContentAry = new String[]{
        "First File","Second File","Third File"
    };
    int i,k;
        for(i=0; i<fileNameAry.length; i++){
            PrintStream fileStream = new PrintStream(new File("C:/Users/DeveloperJC/Desktop/"+fileNameAry[i]));
            for(k=0; k<fileContentAry.length; k++){
                fileStream.println("docname="+fileContentAry[k]);
                fileStream.println("2ndLine= Second Line");
                fileStream.println("3rdLine= Third Line");
                fileStream.println("4thLine= Fourth Line");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:1)

不要运行2 for循环,它会产生问题。

因为string array具有相同的size,所以使用one for循环和

使用correspodning element名称访问array

请参阅下面的修改后的代码。希望它能解决你的问题。

for(i=0; i<fileNameAry.length; i++){
            PrintStream fileStream = new PrintStream(new File("C:/Users/DeveloperJC/Desktop/"+fileNameAry[i]));

                fileStream.println("docname="+fileContentAry[i]);
                fileStream.println("2ndLine= Second Line");
                fileStream.println("3rdLine= Third Line");
                fileStream.println("4thLine= Fourth Line");

        }

答案 1 :(得分:1)

对于每个文件,您在for(k=0; k<fileContentAry.length; k++){ 3次上进行迭代,并且每次都在执行:

 fileStream.println("docname="+fileContentAry[i]);
 fileStream.println("2ndLine= Second Line");
 fileStream.println("3rdLine= Third Line");
 fileStream.println("4thLine= Fourth Line");

3次迭代*每行4行=打印12行。