user6115152:
私は、「自動保存」機能を備えたテキストエディタを作成しようとしています。次に、ユーザは、現在のテキストを変更(例えばアペンドまたは削除文字、単語、行、など)を行うたび変更はすぐにもテキストファイルに適用されるべきであることをことをこの意味。
私は、テキストの変更を検出するために、JavaFXのから「TextAreaの」コントロールを使用しています。また、私は変更が検出されるたびに、スクラッチから、ファイルに新しいテキストを書き込むためにBufferedWriterのを使用しています。BufferedWriterのは、ゼロから再書き込みのすべてのテキストになりますので、しかしそれは、私には正しいようではありません。テキストが大きすぎる場合、これはパフォーマンスの問題が発生します。
誰もがこれを実装する方法の良いアイデアを持っていますか?前もって感謝します。
ControlAltDel:
トリックは、タイマーを使用して、ドキュメントが変更された場合にのみ、更新を書くことです。
例では、Swingコンポーネントで作品を与えられたが、他のフレームワークに適合させることができます
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, ..., ...);