Я работаю над созданием chatbot в java, и я хочу, чтобы он мог генерировать предпочтения (в случайном порядке) по определенным темам и записывать предпочтение файлу. Например, если я попрошу чатбот «Тебе нравится торт?» и до сих пор не спрашивали о «пироге», он будет генерировать случайные предпочтения (истинные или ложные). Затем он записывает в файл («chatbotPreferences.txt» или что-то подобное) его предпочтение, которое можно получить позже, если снова возникнет вопрос «торт». Основная проблема, с которой я столкнулась, заключается в перезаписи файлов при каждом запуске программы. Поэтому, если я буду обсуждать с ним «торт», и он пишет «cake = true» в файле, тогда я запускаю его снова и спрашиваю его о «пироге» и «pie = false», который может появиться в файле, но «cake = true "не указан.
Есть ли способ предотвратить его перезапись или у кого-нибудь есть другие идеи для этого? СпасибоКак добавить в текстовый файл в java без перезаписи?
ответ
Я не знаю, как вы пишете файл, но с использованием в FileWriter
, это довольно просто:
Pass true
в качестве второго параметра конструктору.
У меня нет проблем с записью в файл. Проблема в том, что когда я пишу новое предпочтение, оно перезаписывает все остальное в файле. Я не могу добавить что-то без его удаления всего остального. –
Как открыть файл? –
Как сказал @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();
Тогда вы могли бы добавить вещи в свой список с помощью метода add()
в ArrayList, например, так:
things.add("cake=true");
Наконец, когда приходит время, чтобы сохранить, просто прочитайте все, что угодно из вашего списка. Существуют различные способы, чтобы сохранить (и это звучит, как вы уже сделали это), но вот пример:
import java.io.*;
try {
PrintWriter writer = new PrintWriter("chatbotPreferences.txt");
for (String s : things)
writer.println(s);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
ОК! Спасибо всем за помощь. Думаю, я смогу понять это. : D –
Не могли бы вы принять ответ, если он отвечает на ваш вопрос? –
Как упоминалось выше, вы должны добавить истинный конструктору FileWrite. Вот пример, который показывает это в действии. Если вы запустите этот код более одного раза, он добавит текст, который не будет перезаписан.
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. Как добавить строку в текстовый файл без перезаписи (JAVA)?
- 2. как писать в текстовый файл без перезаписи?
- 3. C# добавить текст в текстовый файл без его перезаписи?
- 4. Запись в текстовый файл без его перезаписи
- 5. Как записать в текстовый файл без перезаписи содержимого файла?
- 6. Как написать текстовый файл в VBScript без перезаписи?
- 7. Как добавить один в текстовый файл? (Java)
- 8. Как добавить выход java в текстовый файл?
- 9. Как добавить плюс в текстовый файл? (JAVA)
- 10. Как добавить существующую строку в текстовый файл java
- 11. Текстовый текстовый файл в Java
- 12. C++ Как добавить строку в существующий текстовый файл без его перезаписи?
- 13. Добавить в текстовый файл
- 14. Как добавить контент в файл журнала без перезаписи?
- 15. Как добавить строки в файл CSV без перезаписи
- 16. Как добавить новую строку в файл без перезаписи текущей строки?
- 17. Как написать внешний текстовый файл без перезаписи текущего содержимого в Java
- 18. Добавить в файл вместо перезаписи
- 19. Как я могу записать файл без перезаписи в java?
- 20. Как добавить текст в ярлык без перезаписи?
- 21. Как добавить файл в текстовый файл
- 22. Как добавить новую строку в существующий текстовый файл в java?
- 23. Java-файл перезаписи в процессе
- 24. Как добавить существующую строку в текстовый файл
- 25. python перезаписать и добавить в текстовый файл
- 26. Запись в файл без перезаписи или добавления
- 27. Как добавить содержимое в текстовый файл
- 28. Как добавить в текстовый файл в android?
- 29. Чтобы добавить значения в существующий файл csv без его перезаписи
- 30. разобрать текстовый файл в java, как удалить ""
Вы пытались использовать поисковую систему с вашим вопросом * verbatim *? Это задается так часто, у вас не должно быть проблем с поиском. – Polygnome
перейдите по этой ссылке [how-to-append-text-to-an-existing-file-in-java] (http://stackoverflow.com/questions/1625234/how-to-append-text-to-an -existing-file-in-java) – kar09