2016-04-15 16 views
0

FileOutputStreamによってファイルに書き込まれ、そのコンストラクタによって開かれたファイルは、FileDescriptorです。データを追加する代わりに上書きするFileOutputStream(FileDescriptor)?

希望する動作:ファイルに書き込むときに、そのファイルの唯一のコンテンツにすることができます。例えば。 "Hello"を書くと、 "Hello"だけのファイルになります。

実際の動作:私が何かを書くたびに、それは単にappenededです。例えば。上の例では "HelloHello"を取得します。


どのように私はイムがやっようなのFileOutputStreamを開き、それは追加モードではできないことができますか?

注:FileDescriptorを使用することを余儀なくされています。

+0

http://stackoverflow.com/a/20398873/115145 – CommonsWare

+0

おかげ@CommonsWare、私は前にもその記事を見つけましたが、単にその後、切り捨てとするのではなく上書きされ、別の方法を期待して、私の質問を投稿することを決めました書きます。私は大きなファイルを扱っています。 – zoltish

+0

「単純に上書きする」は「切り詰めてから書き込む」と同じだと思います。 – CommonsWare

答えて

0

FileOutoutStreamを使用する場合、ctorには、ファイルを追加するかどうかを指定するオプションが用意されています。 falseに設定すると動作します。

OutputStream out = null; 
    try { 
     out = new FileOutputStream("OutFile", false); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
0

たFileOutputStreamのOutputStream。

try { 

     outputStream = openFileOutput("your_file", Context.MODE_PRIVATE); 
     //Context.MODE_PRIVATE -> override/MODE_APPEND -> append 
     outputStream.write("your content"); 
     outputStream.close(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
関連する問題