¿Cómo escribir datos con FileOutputStream sin perder datos antiguos?

86

Si trabaja con FileOutputStreammétodos, cada vez que escribe su archivo a través de estos métodos, ha perdido sus datos antiguos. ¿Es posible escribir archivos sin perder sus datos antiguos FileOutputStream?

iSun
fuente
1
Si se está preguntando cómo pudo haberlo resuelto usted mismo, podría haber leído el Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey
[OutputStreamWriter se usa en lugar de FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh
1
@PeterLawrey para aprender por nosotros mismos, por lo general uno simplemente pregunta en Internet. Y así es el primer resultado antes del documento de Java :-)
Juh_

Respuestas:

150

Usa el constructor que toma ay Fileaboolean

FileOutputStream(File file, boolean append) 

y establezca el booleano en true. De esa manera, los datos que escriba se agregarán al final del archivo, en lugar de sobrescribir lo que ya estaba allí.

Estera
fuente
20

Utilice el constructor para agregar material al archivo:

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

Entonces, para agregar a un archivo, diga "abc.txt" use

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
o_o
fuente