如何在 Java 中的正确位置(字母顺序)将单词附加到 txt 文件中
How to append a word into a txt file, at the correct position (alphabetic order) in Java
有一个文本文件:dictionary.txt,每行一个英文单词,单词按字母顺序从A到Z排序。
现在我想每次都在 dictionary.txt 文件的正确位置插入一个单词。
除了使用 Set<String> dictionary = new TreeSet<String>();
,这意味着我必须将该 .txt 文件中的每个单词添加到数组或集合中,对其进行排序,然后将内容放回 .txt 文件。
还有其他更简单的解决方案或方法吗?这样我就可以将单词直接添加到 .txt 文件中的正确位置?
无论您使用何种语言,向文件中插入内容(不是在末尾)都需要从该点到末尾重写文件(该点之后的所有内容,已经在文件中的,都将被在文件中略有不同的位置(因此在光盘上的物理位置不同))。
您可以在文件中查找您要插入的位置,然后写入新词,然后是它后面的所有内容(已经在文件中)。
如果您想要一个包含排序列表的文件,并且能够有效地向其中添加内容,通常使用索引(在单独的文件中或同一文件的一部分)来完成。该文件不会进行物理排序,而是在添加单词时更新索引。您可以使用数据库系统(例如 SQLite)为您完成此操作。
有一个文本文件:dictionary.txt,每行一个英文单词,单词按字母顺序从A到Z排序。
现在我想每次都在 dictionary.txt 文件的正确位置插入一个单词。
除了使用 Set<String> dictionary = new TreeSet<String>();
,这意味着我必须将该 .txt 文件中的每个单词添加到数组或集合中,对其进行排序,然后将内容放回 .txt 文件。
还有其他更简单的解决方案或方法吗?这样我就可以将单词直接添加到 .txt 文件中的正确位置?
无论您使用何种语言,向文件中插入内容(不是在末尾)都需要从该点到末尾重写文件(该点之后的所有内容,已经在文件中的,都将被在文件中略有不同的位置(因此在光盘上的物理位置不同))。
您可以在文件中查找您要插入的位置,然后写入新词,然后是它后面的所有内容(已经在文件中)。
如果您想要一个包含排序列表的文件,并且能够有效地向其中添加内容,通常使用索引(在单独的文件中或同一文件的一部分)来完成。该文件不会进行物理排序,而是在添加单词时更新索引。您可以使用数据库系统(例如 SQLite)为您完成此操作。