Como escrever dados com FileOutputStream sem perder dados antigos?


86

Se você trabalha com FileOutputStreammétodos, cada vez que grava seu arquivo por meio desses métodos, você perde seus dados antigos. É possível gravar arquivo sem perder seus dados antigos via FileOutputStream?


1
Se você está se perguntando como poderia resolver isso sozinho, você pode ter lido o Javadoc. docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
Peter Lawrey

[OutputStreamWriter é usado em vez de FileOutputStream] [1] [1]: stackoverflow.com/questions/23320070/…
sourabh

1
@PeterLawrey para aprender por nós mesmos, geralmente basta pedir internet. E SO é o primeiro resultado antes do documento java :-)
Juh_

Respostas:


150

Use o construtor que leva a Filee aboolean

FileOutputStream(File file, boolean append) 

e defina o booleano como true. Dessa forma, os dados que você grava serão anexados ao final do arquivo, em vez de sobrescrever o que já estava lá.


20

Use o construtor para anexar material ao arquivo:

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

Então, para anexar a um arquivo, diga "abc.txt", use

FileOutputStream fos=new FileOutputStream(new File("abc.txt"),true);
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.