2011-12-13 2 views
6

に書き換え私はこのような単純な関数を書きます。どのように書き換えないように変更できますか? file変数は、グローバルにはFileと定義されています。はファイル

答えて

3

、あなたはboolean appendパラメータを追加する必要があります。その後、次のようになります。

FileOutputStream fop = new FileOutputStream(file, true); 

これは、代わりに現在のデータをすべてクリアし、書き換えのファイルを追加する必要があることFileOutputStreamを伝えます。

+0

正直言って、 – seventeen

+0

でも少し問題がありましたが、それは最後の文字の後ろに正確に書かれているので、読み書きできません。 – seventeen

+1

'fop.write(...)'を 'fop.write(... +" \ n ")' – Jon

2

を追加番号フラグをパラメータとして使用するコンストラクタを使用します。あなたのFileOutputStreamconstructor

FileOutputStream fop=new FileOutputStream(file, true); 
+0

、感謝 – seventeen

+0

まだ少し問題によって暗黙的に行われます、それは任意のスペースを作るdoesntの、それは最後の文字の後に正確に書き込み、どのように私は各書き込みの後にスペースを与えることができます – seventeen

+0

@MostafaAlli:** write ** space –

0

特定のバイトオフセットで書き込む場合は、RandomAccessFileを試してください。

+1

必ずしも特定のオフセットではなく、単にファイルを追加したいだけです。 – Jon

0

タワーパラメータコンストラクタが正しいです。そしてそれは冗長です:

コンストラクターがそれを行います。

1

appendモードでファイルを開く必要があります。デフォルトでは、FileOutputStreamはファイルをwriteモードで開きます。それはなりますので、あなたがfileの存在をチェックする必要はありません、それは正しかったFileOutputStream

private static void write(String Swrite) throws IOException { 
    FileOutputStream fop=new FileOutputStream(file, true); 
    if(Swrite!=null) 
     fop.write(Swrite.getBytes()); 
    fop.flush(); 
    fop.close(); 
}