-1

見逃した応答を外部テキスト ファイルに書き込もうとしています。以下のメソッドは、認識されなかった応答を外部テキスト ファイルに保存しますが、以前のコンテンツを上書きします。上書きしないようにするにはどうすればよいですか?

//リストメソッドを書く

       public void writeAList(ArrayList<String> list, String filename)
        {
            if(list != null) {
                try (FileWriter writer = new FileWriter(filename)) {
                    for(String item : list) {
                        writer.write(item.trim());
                        writer.write('\n');
                    }                    
                }
                catch(IOException e) {
                    System.out.println("Problem writing file: " + filename +
                                       " in writeAList");
                }
            }
            else {
                System.out.println("Null list passed to writeAList.");
            }
        }

//このメソッドで呼び出しています

public String generateResponse(ArrayList<String> words)
{
    Iterator<String> it = words.iterator();
    while(it.hasNext()) {
        String word = it.next();
        String response = responseMap.get(word);
        if(response != null) {
            return response;
        }
    }
    //If we get here, none of the words from the input line was recognized
    //In this case, a default response is returned
    //The words not recognised are stored in "missed.txt"
    helper.writeAList(words,"missed.txt");
    return pickDefaultResponse();

}
4

2 に答える 2

0

コードでは、次を置き換える必要があります。

FileWriter writer = new FileWriter(filename)

と:

FileWriter writer = new FileWriter(filename, true)

追加のパラメーターtrueは、追加モードを有効にする場所です。

于 2015-11-26T20:18:04.720 に答える