我试着用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]+" ")
我希望这个循环用文字书写,但我不知道怎么做,有什么想法吗?
答案 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;
}
}