user6115152 :
나는 '자동 저장'기능이있는 텍스트 편집기를 만들려고하고 있습니다. 그런 다음 사용자가 현재 텍스트를 변경 (예를 들어, 추가 또는 삭제 문자, 단어, 라인 등)를하게 할 때마다 변경 사항이 즉시뿐만 아니라 텍스트 파일에 적용되어야한다는 것을이 의미합니다.
나는 텍스트의 변경을 감지하는 자바 FX에서 "텍스트 영역"컨트롤을 사용합니다. 또한, 나는 변화가 감지 될 때마다, 처음부터, 파일에 새 텍스트를 작성하는 BufferedWriter의를 사용합니다. BufferedWriter의 모든 다시 쓰기 처음부터 텍스트 것 때문에, 나에게 올바른 것 같지 않습니다. 텍스트가 너무 큰 경우에 성능 문제가 발생할 것입니다.
사람이 구현하는 방법의 더 나은 아이디어가 있습니까? 미리 감사드립니다.
ControlAltDel :
트릭은 타이머를 사용하고 문서가 수정 된 경우에만 업데이트를 작성하는 것입니다.
이 예는 스윙 구성 요소와 작품을 제공하지만, 다른 프레임 워크에 적용 할 수 있습니다
boolean dirtyFlag = false; // set true if the document is altered
DocumentListener dl = new DocumentListener() { ... // implement all methods and set dirtyFlag = true in each
TimerTask task = new TimerTask() {
public void run() {
//save the file
}
}
Timer t = new Timer();
t.scheduleAtFixeRate(task, ..., ...);