0

少し問題がありました。単純に思えますが(個人的にはそうだと思います)、答えが見つかりませんでした。しかし、少なくとも私はそれを修正する方法がわかりません。

[保存] ボタンをクリックすると、いくつかの行が .txt ファイルに書き込まれます。その後、別の何かを入力して [保存] をもう一度押すと、最初の行が上書きされます。

しかし、私はそれが新しい行に書くことを望みます。また、アプリを閉じて再起動し、もう一度保存すると、テキストを新しい行に再度保存する必要があります。

基本的に、前の行を上書きせずにテキストを.txtファイルに書き込むにはどうすればよいですか。私はファイルに書き込むことができるので、それは問題ではなく、上書きしない方法だけです。

これは私のコードの「小さな」部分です:

   public void Data_save_contacts(View v) {

        Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);

        try {

                writer_contact = new BufferedWriter(new FileWriter(root + "/Save/Contacten.txt"));
                writer_contact.write("Perceel "+str_boer_teler_nummer+" = "+str_boer_teler);
                writer_contact.newLine();   

        } catch (IOException e) {
            System.err.println(e);
        }
}

私を良い方向に向けてください。

すでにありがとう、Bigflow

4

4 に答える 4

0

ファイルが存在するかどうかを確認できますか?

または、古いファイルを追加することもできます。

終了しない場合は、新しいものを作成するだけです。

于 2012-04-06T08:47:37.630 に答える
0

これがあなたのコードのほんの一部であることを考えると(そして、他の部分を明らかにしないようにあなたがそれをチャンクアウトしたと仮定しています)、私が疑っているのは、あなたがファイルルート + "/Save/Contacten. txt」を非追加モードで。初めて呼び出すと、ファイルが作成されて書き込まれます。それ以降に呼び出すと、ファイルが検索され、再作成 (またはコンテンツの削除) されてから書き込みが行われます。

使用してみてください:

writer_contact = new BufferedWriter(new FileWriter(root + "/Save/Contacten.txt", true));

もちろん、初めてファイルを開く/作成するときは、それを false にする必要があります (ファイルが既に存在する場合に常に追加したい場合を除きます)。

それを試してみてください。

于 2012-04-06T08:41:19.817 に答える