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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top