자바에서 chatbot을 만드는 중이고 특정 주제에 대한 환경 설정을 무작위로 생성하고 환경 설정을 파일에 쓸 수 있기를 원합니다. 예를 들어, 대화방에 "케이크가 마음에 드냐?"라고 물으면 전에는 "케이크"에 대해 아직 물어 본 적이 없으며, 임의의 선호도 (true 또는 false)를 생성합니다. 그런 다음 파일 ("chatbotPreferences.txt"또는 이와 비슷한 항목)에 환경 설정을 지정합니다.이 환경 설정은 나중에 "케이크"주제가 다시 발생하는 경우 검색 할 수 있습니다. 내가 가지고있는 주된 문제는 프로그램을 실행할 때마다 파일 덮어 쓰기입니다. 그래서 "cake"에 대해 토론하고 파일에 "cake = true"라고 쓰면 다시 실행하고 "pie"와 "pie = false"에 대해 물어 봅니다. 그러나 "cake = true "가 표시되지 않습니다.
덮어 쓰지 않도록하는 방법이 있습니까? 아니면 다른 사람이이 작업을 수행 할 수있는 방법이 있습니까? 당신은어떻게 덮어 쓰지 않고 자바로 텍스트 파일에 추가합니까?
답변
난 당신이 파일을 작성하는 방법을 모르는 감사하지만, FileWriter
사용하여, 그것은 아주 간단합니다 생성자에 두 번째 매개 변수로
패스 true
합니다.
Scanner
과
String
의 ArrayList를 사용할 수
파일에 쓰는 데 문제가 없습니다. 문제는 새로운 환경 설정을 쓸 때 파일의 다른 모든 것을 덮어 쓰는 것입니다. 나는 그 밖의 모든 것을 삭제하지 않고 뭔가를 추가 할 수 없습니다. –
어떻게 파일을 열 수 있습니까? –
@ Robert Koch가 말했듯이 PrintWriter를 사용하지 마십시오. 대신 FileWriter를 사용하고 추가 모드를 사용하여 만듭니다. – FredK
:
그런 다음, ArrayList에있는add()
방법을 사용하여과 같이 목록에 물건을 추가 할 수
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();
:
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. Java로 덮어 쓰지 않고 텍스트 파일에 어떻게 추가합니까?
- 2. 덮어 쓰지 않고 텍스트 파일에 쓰기 C#
- 3. 덮어 쓰지 않고 파일에 쓰기
- 4. 덮어 쓰지 않고 파일에 덮어 쓰기 ObjC
- 5. iOS의 텍스트 파일에 NSString을 덮어 쓰지 않고 씁니다. 데이터
- 6. 덮어 쓰지 않고 텍스트 파일에 쓰는 방법은 무엇입니까?
- 7. 파일의 내용을 덮어 쓰지 않고 텍스트 파일에 쓰는 방법은 무엇입니까?
- 8. Java에서 파일을 덮어 쓰지 않고 어떻게 파일에 쓸 수 있습니까?
- 9. 컴파일 할 때 스택에 덮어 쓰지 않고 ". containers"패키지를 .cabal 파일에 어떻게 추가합니까?
- 10. 파일을 덮어 쓰지 않고 추가하는 중입니까?
- 11. C++ 부스트 라이브러리 - 덮어 쓰지 않고 ini 파일에 쓰시겠습니까?
- 12. 파일을 덮어 쓰지 않고 바이트를 쓰는 방법
- 13. 파이썬에서 파일을 덮어 쓰지 않고 파일에 반복 행을 작성하는 중
- 14. 전체 파일을 덮어 쓰지 않고 텍스트 파일의 단어를 바꾸는 방법
- 15. 이전 데이터를 덮어 쓰지 않고 ObjectOutputStream을 사용하여 파일에 쓰기
- 16. VBScript에서 매번 파일을 덮어 쓰지 않고 파일에 첨부합니다.
- 17. 해당 파일의 기존 데이터를 덮어 쓰지 않고 파일에 쓰기
- 18. 파이썬 : 파일 내용을 덮어 쓰지 않고 파일에 문자열 저장
- 19. 여러 텍스트를 덮어 쓰지 않고 파일에 쓰는 방법
- 20. 기존 내용을 덮어 쓰지 않고 항목을 tar 파일에 추가하십시오.
- 21. lazarus/delphi (pascal) - 다음에 덮어 쓰지 않고 txt 파일에 쓰기
- 22. 덮어 쓰지 않고 Matlab의 파일에 여러 행렬을 쓰는 방법
- 23. 이전 노드를 덮어 쓰지 않고 VBA에서 노드를 XML 파일에 추가해야합니다.
- 24. PHP 파일에 쓰지 않고 파일에 쓰는 것
- 25. BufferedWritter로 덮어 쓰지 마십시오
- 26. 이전 정보를 덮어 쓰지 않고 특정 지점에서 텍스트 파일에 텍스트 정보를 덧붙이 (C)
- 27. powershell 파일을 덮어 쓰지 않고 티 개체
- 28. 기존 XML 파일을 덮어 쓰지 않고 작성하십시오.
- 29. get_context_data를 덮어 쓰지 않고 Django CBV를 사용하십시오.
- 30. 덮어 쓰지 않고 문서 디렉토리의 SQLite DB에> 100 개의 새 행을 어떻게 추가합니까?
* 축 어적으로 * 검색 엔진을 사용해 보았습니까? 이것은 자주 묻습니다, 당신은 문제를 발견해서는 안됩니다. – Polygnome
이 링크로 이동 [app-text-to-an-existing-file-in-java] (http://stackoverflow.com/questions/1625234/how-to-append-text-to-an) -existing-file-in-java) – kar09