Saltar al contenido

Excepción de Java IO: flujo cerrado

Encontramos la contestación a este inconveniente, o por lo menos eso pensamos. Si presentas inquietudes dínoslo y sin dudarlo te responderemos

Solución:

estas llamando writer.close(); después de que haya terminado de escribir en él. Una vez que se cierra una secuencia, no se puede volver a escribir en ella. Por lo general, la forma en que implemento esto es moviendo el cierre del método de escritura.

public void writeToFile()
    String file_text= pedStatusText + "     " + gatesStatus + "     " + DrawBridgeStatusText;
    try 
        writer.write(file_text);
        writer.flush();
     catch (IOException e) 
        // TODO Auto-generated catch block
        e.printStackTrace();
    

Y agrega un método cleanUp para cerrar la corriente.

public void cleanUp() 
     writer.close();

Esto significa que usted tiene la responsabilidad de asegurarse de que está llamando cleanUp cuando haya terminado de escribir en el archivo. Si no lo hace, se producirán fugas de memoria y bloqueo de recursos.

EDITAR: Puede crear una nueva transmisión cada vez que desee escribir en el archivo, moviendo writer en el writeToFile() método..

 public void writeToFile() 
    FileWriter writer = new FileWriter("status.txt", true);
    // ... Write to the file.

    writer.close();
 

Llama writer.close(); en writeToFile por lo que el escritor se ha cerrado la segunda vez que llama writeToFile.

¿Por qué no te fusionas? FileStatus dentro writeToFile?

no llames write.close() en writeToFile().

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *