我目前为工作中的经理写了一个小程序。它输入一个发票编号并将其创建为一个按钮,连续向下。然后输入批准日期并将其创建到标签中(与创建的按钮一致)。最后,为过期日期(30天后)创建一个标签(并再次在线创建按钮)。
它将这些数据保存到3个文件中(1个用于按钮,1个用于第一个标签,1个用于第二个标签)。现在我正在使用“ObjectOutputStream”来保存按钮/标签列表。程序打开后,它会重新加载文件中的所有数据并将它们“重新打印”到屏幕上。该程序还为用户提供了删除RO的选项,在这种情况下,我重新写入数据文件减去已删除的RO。
我只是想知道是否有更好的方法来做这一切,如果我在浪费时间使用这种方法。
答案 0 :(得分:3)
当目标是长期保存数据时,我倾向于使用比Java序列化更可重用的数据格式。
序列化非常适合通过网络发送完整对象或快速/临时保存磁盘上的完整对象,同时重新启动JVM或暂时需要更多内存等等。但是,长期保存数据并不是那么好。当您更改/更新包含数据的类时,现有数据将无法使用。
考虑XML(与JAXB结合使用)或JSON(与Gson结合使用)或嵌入式SQL数据库(与JDBC结合使用)。这使您可以更轻松,更细粒度地控制向后兼容性以及其他程序/语言的可重用性。
答案 1 :(得分:2)
您应该保存数据,而不是组件。您是否可以在加载时构建按钮,标签等,并且只保存发票号,批准日期和到期日期?
此外,您可以将所有数据存储在arraylist或hashmap中,并且只保存该对象,而不是1000个较小的对象。