我正在开发一个程序,它有三个JTextBox,我的用户可以输入并检查一些文本以获得正确的规则。
所以我想在我的程序中添加一个ablitiy,我的用户可以添加或删除他们喜欢的文本到收藏夹列表,并可以在收藏夹列表中创建文件夹并在其中放入一些文本,例如FireFox中的书签库或其他Web浏览器
我希望使用RandomAccessFile
将收藏列表保存为收藏源。
我该如何实施?是否有更好的方法来实现它?是否有来自RandomAccessFile的方式?
任何人都可以帮助我吗?
感谢。
答案 0 :(得分:3)
可能有很多方法。这一切都取决于你想要达到的目标。
考虑使用 Java序列化机制。您可以将书签集合序列化为文件。当您的应用启动时,您将其反序列化,并获得相同的收集数据。
优点是:简单易行的实现。 缺点:您无法在文本编辑器或其他内容中查看存储的书签。将使用相同的类层次结构来加载序列化版本。
XML 是人类可读的,并提供简单的互操作性。其他应用程序将能够处理您的书签列表。
解析XML并将其加载到内存然后创建内部对象结构通常需要更多资源。虽然您可以使用DOM一直遍历树,但它可能不如使用专门类的内部数据结构那么方便。
随机存取文件最适合固定记录尺寸。这意味着书签的所有字段都必须是固定长度的。例如,书签的名称是String
。当你把它写出来一个文件时,你把它存储成一个固定长度的数组,比如20。这自动意味着如果用户给一个书签长度大于20的名字,剩下的字符就会丢失。
上面的警告也很容易实现。当然,记录可能是可变长度的,但随后您丢失了对文件的随机访问权限,因为您无法轻松计算特定记录的位置。
Firefox使用JSON存储书签并允许导出为HTML。你也可以探索这个。
答案 1 :(得分:3)
您还可以在“首选项”中存储书签以及要在会话之间保留的内容, 见http://download.oracle.com/javase/6/docs/api/java/util/prefs/Preferences.html