2011-12-17 45 views
61

Si trabaja con los métodos FileOutputStream, cada vez que escriba su archivo a través de este método, perderá sus datos anteriores. ¿Es posible escribir un archivo sin perder sus datos anteriores a través del FileOutputStream?¿Cómo escribir datos con FileOutputStream sin perder los datos antiguos?

+1

Si se preguntan cómo se podría haber trabajado esto por ti mismo, podrías haber leído el Javadoc. http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html –

+0

[OutputStreamWriter se utiliza en lugar de FileOutputStream] [1] [1]: http://stackoverflow.com/questions/23320070/appending-a-string-to-an-existing-file-using-outputstreamwriter/23320195?noredirect=1#comment35707473_23320195 – sourabh

+1

@PeterLawrey para aprender por nosotros mismos, uno solo suele preguntar en Internet. Y SO es el primer resultado antes del doc de Java :-) –

Respuesta

114

Utilice el constructor que toma un File y una boolean

FileOutputStream(File file, boolean append) 

y establecer el valor booleano a true. De esta forma, los datos que escriba se agregarán al final del archivo, en lugar de sobrescribir lo que ya estaba allí.

18

utilizar el constructor para anexar material al archivo:

FileOutputStream(File file, boolean append) 
Creates a file output stream to write to the file represented by the specified File object. 

Así que para anexar a un archivo decir "abc.txt" utilizar

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true); 
Cuestiones relacionadas