私はJavaでチャットボットを作っています。特定のトピックについて(ランダムに)環境設定を生成し、環境設定をファイルに書き込むことができるようにしたいと思います。たとえば、私がチャットボットに「ケーキが好きですか?」と尋ねるとかつては "ケーキ"について尋ねられていませんでしたが、それはランダムな好み(trueまたはfalse)を生成します。次に、ファイル( "chatbotPreferences.txt"など)にその嗜好を書き込みます。これは、後で "ケーキ"の件名が再び発生した場合に取得できます。私がこれを持っている主な問題は、プログラムを実行するたびにファイルが上書きされることです。だから私は "ケーキ"とそれについて議論すると、 "ケーキ=真"をファイルに書き込んだ後、再度実行して "パイ"と "パイ= false"をファイルに表示するかもしれませんが、 "cake = true "はリストされていません。
上書きされないようにする方法はありますか?これを行うための他のアイデアは誰にもありますか?私はあなたがファイルを書き込む方法を知りませんが、FileWriter
を使用して、それは非常に簡単ですあなたに上書きせずにJavaのテキストファイルに追加するにはどうすればよいですか?
答えて
ありがとう:
パスtrue
をコンストラクタの2番目のパラメータとして。
ファイルへの書き込みに問題はありません。問題は、新しい設定を書き込むときに、ファイル内のすべてのものを上書きすることです。私は他のすべてを削除することなく何かを追加することはできません。 –
どのようにファイルを開きますか? –
@Robert Koch氏によると、PrintWriterは使わないでください。代わりにFileWriterを使用し、追加モードを使用して作成します。 – FredK
あなたはそうのようなデータを読み込むために、Scanner
とString
のArrayListを使用することができます。
import java.util.*;
Scanner in = new Scanner(new File("chatbotPreferences.txt"));
List<String> things = new ArrayList<String>();
while (in.hasNext())
things.add(in.nextLine());
in.close();
次にあなたがそうのように、ArrayListの中add()
方法を使用して、リストに物事を追加することができます。
things.add("cake=true");
最後に、保存するときには、あなたのリストからすべてを読んでください。そこ保存するための様々な方法がある(と、それはあなたがすでにこれをやったような音)が、ここでは一例です:あなたはFileWrite関数のコンストラクタに真追加する必要があり、上記の
import java.io.*;
try {
PrintWriter writer = new PrintWriter("chatbotPreferences.txt");
for (String s : things)
writer.println(s);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
OK!助けてくれてありがとう。私はここからそれを理解することができると思う。 :D –
あなたの質問に答えるなら、答えを受け入れてください。 –
ように。実際に動作していることを示す例を以下に示します。このコードを複数回実行すると、上書きしないテキストが追加されます。
import java.io.*;
public class FileWriting{
public static void main(String[] args)throws Exception{
FileWriter fw= new FileWriter("test.txt",true); //by adding true you can add to a pre-existing file
PrintWriter pw= new PrintWriter(fw);
pw.println("line 1");
pw.println("line 2");
pw.println("line 3");
pw.println("line 4");
pw.close();
FileReader fr= new FileReader("test.txt");
BufferedReader br= new BufferedReader(fr);
String x;
do{
x= br.readLine();
System.out.println(x);
}while(x!=null);
br.close();
}
}
- 1. 上書きせずにラベルにテキストを追加するにはどうすればよいですか?
- 2. データを上書きせずに辞書に保存するにはどうすればよいですか?
- 3. テキストファイルをJavaで上書きするのではなく、どのように追加しますか?
- 4. 既存のデフォルトヘルパークラスを設定/上書きせずに、クラスをレール上のルビーのフォームに追加するにはどうすればよいですか?
- 5. 上書きせずにAzure Blobストレージにアップロードするにはどうすればよいですか?
- 6. 辞書追加の上書きを避けるにはどうすればよいですか?
- 7. 古いコンテンツを上書きせずにcsvファイルの各行にデータを追加するにはどうすればよいですか?
- 8. Java Bridge用のTomcatサーバーを追加せずに、既存のPHPサイトにJavaバックエンドを追加するにはどうすればよいですか?
- 9. 現在のエントリを上書きせずに複数のGroovyマップエントリを追加するにはどうすればよいですか?
- 10. Cassini WebホスティングフレームワークをGACに追加せずに動作させるにはどうすればよいですか?
- 11. デスクトップ上の既存のテキストファイルに文字列を書き込むにはどうすればよいですか?
- 12. メッセージごとにハッボットを追加せずにハブトにアクセスするにはどうすればよいですか?
- 13. JAVA - 特定のスタイルのテキストファイルに変数を書き込むにはどうすればよいですか?
- 14. カテゴリを使用せずにプロパティグリッドにグループを追加するにはどうすればよいですか?
- 15. マスターページを変更せずにコンテンツページにCSSを追加するにはどうすればよいですか?
- 16. アイコンを削除せずにアイコンをバインディングに追加するにはどうすればよいですか?
- 17. 要件を変更せずにゲームセンターにゲームセンターを追加するにはどうすればよいですか?
- 18. コマンドを実行せずにbash履歴に追加するにはどうすればよいですか?
- 19. 他のトリガーを消去せずにラムダトリガーを追加するにはどうすればよいですか?
- 20. 他のクラスを削除せずにクラスを追加するにはどうすればよいですか?
- 21. WiXでファイルを追加せずにアップグレードするにはどうすればよいですか?
- 22. Wicketでコンポーネントを追加せずに属性を変更するにはどうすればよいですか?
- 23. 上書きせずに行を追加する
- 24. 上書きせずに行を追加する(Python)
- 25. .txtファイルに追加してテキストファイルに上書きする方法
- 26. ASPXファイルを追加せずにユーザーコントロールをテストするにはどうすればよいですか?
- 27. Linuxのテキストファイルの列に特定のテキストを追加するにはどうすればよいですか?
- 28. ビジュアルベーシックのテキストファイルの特定の行にテキストを追加するにはどうすればよいですか?
- 29. テキストファイル内の単語の前に数字を追加するにはどうすればよいですか?
- 30. 別の辞書リストに辞書のリストを追加するにはどうすればよいですか?
質問が*逐語*で検索エンジンを使用してみましたか?これは頻繁に尋ねられますが、見つけても問題はありません。 – Polygnome
このリンクにアクセスする[ファイルへの既存のファイルへの追加方法](http://stackoverflow.com/questions/1625234/how-to-append-text-to-an) -existing-file-in-java) – kar09