2011-12-17 3 views
61

Jeśli pracujesz z metodami FileOutputStream, za każdym razem, gdy piszesz swój plik za pomocą tych metod, utraciłeś swoje stare dane. Czy można zapisać plik bez utraty starych danych przez FileOutputStream?Jak zapisywać dane przy użyciu FileOutputStream bez utraty starych danych?

+1

Jeśli zastanawiasz się, jak mogłeś pracował to dla siebie, mógłbyś przeczytać Javadoc. http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html –

+0

[OutputStreamWriter jest używany zamiast 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, aby uczyć się samodzielnie, zwykle wystarczy zapytać o Internet. I SO jest pierwszym wynikiem przed dokumentem java :-) –

Odpowiedz

114

użyć konstruktora, że ​​trwa File a boolean

FileOutputStream(File file, boolean append) 

i ustawić wartość logiczną do true. W ten sposób dane, które napiszesz, zostaną dodane na końcu pliku, zamiast nadpisywać to, co już tam było.

18

użyć konstruktora do materiału dołączanie do pliku:

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

Tak, aby dołączyć do pliku powiedzieć „abc.txt” użytkowania

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