将文件写入器作为参数传递?

时间:2014-11-28 03:41:02

标签: java filewriter

我试着用filestream写一个文件,但我不明白如何将一个文件写入器作为参数传递给一个函数,这是我的代码

public static void main(String [] Args) throws IOException{
     try {
        FileWriter fw = new FileWriter("Credits.txt");
        PrintWriter pw = new PrintWriter(fw);

        graphColoring(0);//comienza en el primer vertice 



        if (Sol == false)
            pw.println("Existe solucion: Falso");
        else
            pw.println("Existe solucion: Verdadero");

        pw.close();

    } catch (IOException e) {
        out.println("error");
    }
 }

public static void graphColoring(int k) 
{

    while(true){
        grNextValue(k);
        z=0;
        if(countDomain[k] == 0)
            return;//no es posible asignar un nuevo color
        if(k == limitVariables)
        {
            System.out.println("Existe solucion: Verdadero");
            tope = 1;
            for(int i=1; i<=k;i++,z++){
                int num = countDomain[i]-1;
                System.out.println(""+values[z]+" = "+domain[num]+" ");//todos los vertices son coloreados y asigna diferente color a cada uno


            }
            System.out.println();
            Sol = true;
        }
        else{
            graphColoring(k+1);//elige el siguiente vertice
        }
        tope = 1;

    }

}

现在我的代码在控制台中显示了

的解决方案列表
System.out.println(""+values[z]+" = "+domain[num]+" ")

我希望这个循环用文字书写,但我不知道怎么做,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,一个解决方案是将FileWriter传递给你的方法(或为它创建一个静态字段)。像,

public static void graphColoring(int k, FileWriter fw) 
{
    while(true){
        grNextValue(k);
        z=0;
        if(countDomain[k] == 0)
            return;
        if(k == limitVariables)
        {
            fw.append("Existe solucion: Verdadero");
            fw.append(System.lineSeparator());
            tope = 1;
            for(int i=1; i<=k;i++,z++){
                int num = countDomain[i]-1;
                fw.append(""+values[z]+" = "+domain[num]+" ");
                fw.append(System.lineSeparator());
            }
            fw.append(System.lineSeparator());
            Sol = true;
        }
        else{
            graphColoring(k+1);
        }
        tope = 1;
    }
}