我正在尝试创建具有“自动保存”功能的文本编辑器。这意味着每当用户对当前文本进行任何更改(例如,添加或删除字母,单词,行等)时,该更改也应立即应用于文本文件。
我使用Javafx的“ TextArea”控件来检测文本中的任何更改。另外,每当检测到更改时,我都使用BufferedWriter从头开始将新文本写入文件。但是,这对我来说似乎并不正确,因为BufferedWriter将不得不从头开始重写所有文本。如果文本太大,将导致性能问题。
有人对如何实施此方法有更好的主意吗?预先感谢。
诀窍是使用计时器,并且仅在文档已被修改的情况下编写更新。
如果有人在文件的开头附近插入或删除,则无论如何大多数文件都将不得不重写。