2017-01-18 5 views
0

私はJavaには比較的新しいので、Matlabの経験が豊富です。あるプログラムで計算された比較的少量のデータを別のプログラムで使用する必要があります。Javaでシリアル化してデータを保存し、後で(少量の)データにアクセスする最も簡単で簡単な方法はありますか?

例:プログラムAは100個の値を計算して配列に格納します。今私はこれらの値が必要なので、プログラムBのこの配列にアクセスしたいと思います。もちろん、1つのプログラムをまとめて書くことはできますが、これもAの部分を実装しています。しかし、今度は全プログラムを実行するたびに、すべての値を再度計算する必要があります。資源の浪費。 Matlabでは、配列を.matファイルに簡単に保存し、別のスクリプトにロードすることができました。

私の答えを見つけるために周囲を見回しました。私が望むことをするのに適していると思われるシリアライズするオプション(What is object serialization?)が見つかりました。私の質問:Javaで少量のデータを保存するための最も簡単で簡単なソリューションをシリアル化していますか?(Matlabの.matファイルのような)より使いやすく便利なオプションがありますか?

+0

_later_にアクセスする場合は、ディスクに保存する必要があると想定します。ディスクに保存されているものはシリアル化されているため、他の方法はありません。 – litelite

+0

オブジェクトのシリアル化の代わりに、プレーンテキストやCSVなどを書き出すことができます。プレーンテキストファイルは.matに最も近いでしょう。 – Fildor

+1

シリアライズすると、特定のクラスの実装につながります。コードを変更するとクラスが進化すると、そのシリアライズされたフォームが変更されます。 – RealSkeptic

答えて

2

私はこの仕事をするいくつかの選択肢があると思います。 Javaオブジェクトのシリアライゼーションが可能です。私の視点から見ると、データをシリアライズするための他のオプションがあります。

  • Write and read計算値を保存する単純なテキストファイルです。
  • 注釈付きJavaクラスをXMLファイルに書き込むためのXMLバインディング用のJavaアーキテクチャの使用(JAXB)。 JSONと同じこともできます。
  • SQLiteまたはHSQLDB(ネイティブJavaデータベース)のような軽量データベースを使用します。
  • JavaオブジェクトをファイルにデシリアライズするためにApache ThriftまたはProtocol Bufferを使用します。
+0

これはすべてシリアル化です。ビルトインシリアライザではない。 – litelite

+1

@liteiteあなたは正しいですが、これは役に立ちません。これらは、OPのケースで他のものよりも適しているシリアライゼーションの異なる形式であることに同意できますか? – Fildor

+0

@Fildorはい、もちろん、私はちょうど答えが書かれている方法は、他のオプションが実際には逐次化されていないかのように思えます。 – litelite

関連する問題