我正在做一个 Java Messenger 供人们聊天,并且我正在寻找一种在用户计算机上记录消息档案的方法。
我有两种可能性:
将对话保存在我存储在我的文档文件夹中的 XML 文件中。
要使用SQlite,但问题是我不知道如何将它集成到我的安装包中,我不知道它是否很有用。
什么是最适合您的解决方案?
谢谢
另一种选择是使用JavaDb,它随 Java 6(及更高版本)免费提供
在做出选择之前,您应该考虑以下问题:
等等。即使是一个简单的文本文件也很可能就足够了。也许你最好的选择是选择一个简单的解决方案(例如一个文本文件)并实现它,看看它带你走多远。但是,请提供合适的持久性级别抽象,以便您可以在将来插入不同的解决方案,而将中断降至最低。
使用 google 的 protocolbuffer 或 10gen 的 bson。它们更小更快。
http://code.google.com/apis/protocolbuffers/docs/javatutorial.html
一个问题是这些在二进制表示中,您可能希望使存档对用户透明/可读
如果您使用 JAXB,则将 Java 对象与 XML 转换非常容易。您只需在类上添加一些注释,然后通过 JAXB 编组器/解组器运行它们。请参阅http://docs.oracle.com/javaee/5/tutorial/doc/bnbay.html
我会选择 XML 文件,因为它们更通用,并且可以在您的信使之外以或多或少的人类可读格式打开。我使用 Pidgin 进行即时消息传递,它以 XML 格式保存聊天历史记录。此外,要从您的应用程序中读取历史记录,您可以轻松地在 HTML 中进行转换以很好地显示它。