我正在尝试使用关键路径方法来计算关键路径。我有几个测试用例,其输出应打印到一个名为“ tarea2.out”的文件中。
问题是,当我打印文件时,似乎我覆盖了每种情况的输出,最后输出仅显示了最后一种情况。我知道这很傻,但是我是Java新手,所以我无法确保输出正确
这是我的代码:
package tarea;
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
/**
*
* @author Francisco
*/
public class Main {
public static int c;
public static void recorrido(int[][] adj) throws IOException{
int n=adj.length;
int casitas[][] = new int[n][2];
int mejorCamino[] = new int [n];
int temp;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
temp = adj[i][j];
if(temp > -1){
if(temp + casitas[i][0]>casitas[j][0]){
casitas[j][0] = temp + casitas[i][0];
mejorCamino[j] = i;
}
}
}
}
//Hacemos el paso hacia atrás.
for(int y=0;y<n;y++)
casitas[y][1] = casitas[n-1][0];
for (int j=n-1;j>=0;j--){
for(int i=0;i<n;i++){
temp = adj[i][j];
if(temp > -1){
casitas[i][1]= Math.min(casitas[j][1] - temp , casitas[i][1]);
}
}
}
int x=n-1;
String cam = "";
while(x>0){
if(x==n-1)
cam= mejorCamino[x] + " " + x;
else
cam= mejorCamino[x] + " " + x + "\n" + cam;
adj[mejorCamino[x]][x] = -1;
x = mejorCamino[x];
}
//Calculamos las holguras con nuestra nueva matriz
String mac="";
int HT , HL;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
temp = adj[i][j];
if (temp > -1){
HT = casitas[j][1] - temp - casitas[i][0];
HL = casitas[j][0] - temp - casitas[i][0];
mac += "\n" + i + " " + j + " " + HT + " " + HL;
if (HT>HL)
mac += " R";
}
}
}
String sFichero = "tarea2.out";
File fichero = new File(sFichero);
BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
bw.write("Case " + c + ": total duration " + casitas[n-1][0] );
bw.write("\n");
bw.write(cam);
bw.write(mac);
bw.write("\n");
// Hay que cerrar el fichero
bw.close();
}
}
最佳答案
每次调用recorrido
方法时,您都在创建BufferedWriter。
BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
每次都会重写文件。将
true
参数添加到构造函数中,以告知它将以附加模式打开文件BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero, true));
另外,最好在所有应用程序中一次打开文件,然后在
recorrido
中只写内容,而不要多次打开/关闭文件。关于java - 使用Java写入文本文件,覆盖测试用例的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10341854/