从不带数据库的JavaFX应用程序保存数据

从不带数据库的JavaFX应用程序保存数据,java,database,serialization,javafx,Java,Database,Serialization,Javafx,不幸的是,我找不到任何与这个话题/我的问题相关的东西。我们开始: 我正在为我的一个朋友构建一个JavaFX业务应用程序。不幸的是,我没有任何可能连接到数据库。我希望应用程序从文件加载savestate。应用程序包含一个包含客户端的列表,客户端获得一些特定属性。我不想将其硬编码到.prop或.txt文件,因为我确信有不同的方法来实现这一点,不是吗 提前感谢,谢谢 将数据持久化到本地存储有很多选择。具体的选择取决于你的需要。您描述的细节不够详细,无法提出具体建议 下面是一个可能性列表,大致按照数据复

不幸的是,我找不到任何与这个话题/我的问题相关的东西。我们开始:

我正在为我的一个朋友构建一个JavaFX业务应用程序。不幸的是,我没有任何可能连接到数据库。我希望应用程序从文件加载savestate。应用程序包含一个包含客户端的列表,客户端获得一些特定属性。我不想将其硬编码到.prop或.txt文件,因为我确信有不同的方法来实现这一点,不是吗


提前感谢,谢谢

将数据持久化到本地存储有很多选择。具体的选择取决于你的需要。您描述的细节不够详细,无法提出具体建议

下面是一个可能性列表,大致按照数据复杂性的增加顺序排列

文本文件 如果有少量简单数据,请保存到文本文件。您可以将每个片段存储在单独的文件中,也可以合并到单个文件中。Java的最新版本有新的类使这比以往任何时候都更容易。看

逗号分隔和制表符分隔 对于结构化数据集,请在或中写入文本文件。例如,人员列表中的每一个人都有行,姓名、电话号码和电子邮件地址列

虽然读/写这样的文件对自己编程来说很容易,但我建议使用一个已建立的库来消除繁琐的工作,避免bug,并为自己节省一些时间。有一些这样的库是用Java编写的

我最喜欢的是这个项目。这个库使读/写这样的文件变得简单。尽管名称不同,但该库支持制表符分隔格式和逗号分隔格式。我在这里写了一些关于堆栈溢出的答案,展示了如何使用这个库,如您所见,以及

顺便说一句,plain old在数据文件中定义了一个包含四个级别的分组(文档、组、记录/行和字段)。当然是Unicode。我感到困惑的是,为什么这些仍然是如此模糊和如此罕见的使用。在我看来,使用逗号和制表符比使用逗号和制表符更符合逻辑,因为逗号和制表符很可能存在于数据负载中

系列化 您可以写出存储在对象中的数据值。这称为序列化。Java内置了一个序列化功能,但一定要仔细研究细节

为了更简单地写出一个对象的值,然后再读回以重新构建一个对象,我很喜欢使用这个项目。这适用于相对简单的需求,并针对您希望类的结构驱动确定编写内容的过程的情况

Java还有其他内置和第三方的XML绑定功能。它们的灵活性更强。当您想要以一种严格的方式定义和验证XML结构时,它们尤其适用,例如定义一个or来验证数据,甚至生成一个Java类来表示数据

嵌入式数据库 对于更复杂的数据,请使用嵌入式关系数据库

该数据库与许多平台捆绑在一起。这是一个基于C的库,而不是纯Java。顾名思义,SQLite确实相当“精简”,缺乏严格的数据类型和许多其他常见的数据库功能。SQLite是编写文本文件的替代品,而不是更严肃的数据库的竞争对手。如果您的需求符合其功能的最佳点,它将是一款很棒的产品


我对嵌入式数据库的第一个选择是。内置于纯Java中。可以在应用程序内部运行,也可以作为服务器单独运行(您可以选择)。具有复杂的关系数据库功能。已经存在多年,经常更新,而且很旧。主要作者在该领域有丰富的经验。

考虑提出一个解决方案(代码)或者,在发布有关stackoverflow的问题之前,到目前为止您尝试了什么。嵌入式数据库()呢?