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()
.