用Java序列化是存储和以后访问(少量)数据的最佳/最简单的方法吗?

用Java序列化是存储和以后访问(少量)数据的最佳/最简单的方法吗?,java,serialization,store,Java,Serialization,Store,我对Java比较陌生,对Matlab有更多的经验。我想知道最好的方法是存储在一个程序中计算过的、应该在另一个程序中使用的相对较少的数据 示例:程序A计算要存储在数组中的100个值。现在我想在程序B中访问这个数组,因为它需要这些值。当然,我可以一起编写一个程序,这也实现了A部分。但是,现在每次我想要执行整个程序时,都必须重新计算所有值(在A部分),这是一种资源浪费。在Matlab中,我能够轻松地将数组保存在.mat文件中,并将其加载到不同的脚本中 环顾四周寻找我的答案,我找到了序列化()的选项,我

我对Java比较陌生,对Matlab有更多的经验。我想知道最好的方法是存储在一个程序中计算过的、应该在另一个程序中使用的相对较少的数据

示例:程序A计算要存储在数组中的100个值。现在我想在程序B中访问这个数组,因为它需要这些值。当然,我可以一起编写一个程序,这也实现了A部分。但是,现在每次我想要执行整个程序时,都必须重新计算所有值(在A部分),这是一种资源浪费。在Matlab中,我能够轻松地将数组保存在.mat文件中,并将其加载到不同的脚本中


环顾四周寻找我的答案,我找到了序列化()的选项,我认为这是一个适合做我想做的事情的方法。我的问题:序列化是用Java存储少量数据的最简单、最快速的解决方案,还是有一个更快、更用户友好的选项(如Matlab中的.mat文件)?

我认为您有几个选项来完成这项工作。Java对象序列化是一种可能的方法。在我看来,序列化数据还有其他选择:

  • 存储计算值的简单文本文件
  • 使用Java Architecture for XML Binding()将带注释的Java类写入XML文件。JSON也有同样的功能
  • 使用轻量级数据库,如or(本机Java数据库)
  • 使用或将Java对象反序列化为文件

    • 我认为你有几种选择来做这项工作。Java对象序列化是一种可能的方法。在我看来,序列化数据还有其他选择:

      • 存储计算值的简单文本文件
      • 使用Java Architecture for XML Binding()将带注释的Java类写入XML文件。JSON也有同样的功能
      • 使用轻量级数据库,如or(本机Java数据库)
      • 使用或将Java对象反序列化为文件

      如果您想稍后访问它,那么我假设您必须将其存储在磁盘上。存储在磁盘上的任何东西都是序列化的,除了对象序列化,你可以写出纯文本或csv之类的东西。我认为纯文本文件最接近.mat。序列化将您与特定的类实现联系在一起。随着代码的更改和类的发展,其序列化形式将发生变化。@litelite我的答案适用于任何形式的序列化。随着对象的更改,序列化的表单也将更改。通常最好以某种格式保存相关数据,而不是将其与对象实现绑定。@litelite您似乎将序列化与持久性混为一谈。并不是世界上所有的数据写入都是序列化的,在OP中的链接中,你不会找到你的定义,因为这是关于对象序列化的。如果你想稍后访问它,那么我假设你必须将它存储在磁盘上。存储在磁盘上的任何东西都是序列化的,除了对象序列化,你可以写出纯文本或csv之类的东西。我认为纯文本文件最接近.mat。序列化将您与特定的类实现联系在一起。随着代码的更改和类的发展,其序列化形式将发生变化。@litelite我的答案适用于任何形式的序列化。随着对象的更改,序列化的表单也将更改。通常最好以某种格式保存相关数据,而不是将其与对象实现绑定。@litelite您似乎将序列化与持久性混为一谈。并不是世界上所有的数据写入都是序列化的,你也不会在OP的链接中找到你的定义,因为这是关于对象序列化的,这些都是序列化。只是不能使用内置序列化程序。@litelite您是对的,但这没有帮助。我们可以同意,这些是不同形式的序列化,其中一些更适合OP的情况,是吗?@Fildor是的,当然,我只是想指出,答案的书写方式似乎其他选项不是序列化,而它们实际上是。@litelite我希望您现在同意我的更新文本:-)这些都是序列化。只是不能使用内置序列化程序。@litelite您是对的,但这没有帮助。我们可以同意,这些是不同形式的序列化,其中一些更适合OP的情况,是吗?@Fildor是的,当然,我只是想指出,答案的书写方式似乎其他选项都不是序列化,而它们实际上是。@litelite我希望您现在同意我的更新文本:-)