Pregunta
De acuerdo ... así que tengo un error bastante interesante ... Declaro un FileWriter llamado archivo, y tengo que pasar por lo siguiente para bucles:
for (int i = 0; i < a.radtot; i++) {
file.write("" + i * a.rstep);
for (int n = 0; n < a.timetot; n++) {
file.write("\t " + T[n][i]);
System.out.println(T[n][i] + " " + n + " " + i);
}
file.write("\n");
}
Al final, el comando System.out.println imprime lo que esperaba, pero el archivo se corta a mitad de camino ... Como en, en lugar de imprimir todo lo que hace System.out ... se detiene en la mitad. ¿Alguien sabe por qué haría eso? ¿Estoy haciendo algo mal?
Solución
Debe llamar a < code> close () en el FileWriter
cuando haya terminado con él. Esto obliga a que toda la salida se escriba realmente en el disco (de lo contrario, podría dejarse en un búfer).
for (int i = 0; i < a.radtot; i++) {
file.write("" + i * a.rstep);
for (int n = 0; n < a.timetot; n++) {
file.write("\t " + T[n][i]);
System.out.println(T[n][i] + " " + n + " " + i);
}
file.write("\n");
}
file.close(); // <-- Add this
(Supongo que ha omitido el manejo de excepciones por brevedad, así que he hecho lo mismo. El close ()
normalmente estaría en un bloque finalmente
para asegúrese de que siempre se ejecutará.)
Otros consejos
Intenta agregar:
file.close();
El close ()
la descripción del método dice:
Cierra la secuencia y la descarga primero.