4

私は現在、ftpサーバーのブックマークなどのユーザーデータを格納するデスクトップアプリケーションをJavaで開発しています。これらの情報を保存する方法を決定するとき、xpathの動作が気に入ったという理由だけで、最終的にxmlを使用することになりました。もっと軽量に見えるjsonについても考えていました。

Javaデスクトップアプリケーション(一般的に)にデータを保存するための好ましい方法は何ですか?その理由は何ですか?java-persistenceについてはどうですか、それは注目に値する利点がありますか?そして、ユーザーデータのサイズはどのくらい重要ですか?データをデータベースに保存できるとは限りません(または望ましい)。私の経験では、xmlは適切に拡張できません。どう考えているか教えてください!

まだ誰もjsonについて言及していませんが、それは私を驚かせます。これが適切な状況はありませんか?

4

6 に答える 6

5

機能するものは何でも、優れたパフォーマンスを提供し、最小限のコードしか必要としません。

Java シリアライゼーションは簡単です。大きなオブジェクト グラフがない限り、高速である必要があります。別の言語と相互運用したい場合や、ファイルを人間が読める/編集できるようにしたい場合は、うまくいかないかもしれません。脆いかもしれません。

XML は多言語相互運用性に対応しており、人間が読み取ったり編集したりできます。Java を使用している場合、Jaxb は非常に簡単ですぐに使用できます。多くの設定を保存する必要がある場合は、SAX/StAX が必要になる場合があります。非常に奇妙な状況で DOM/JDom を使用したい場合があります。

保存してクエリを実行する設定が多数ある場合は、埋め込み SQL データベースを使用できます。H2をお勧めします。

于 2010-06-03T20:20:50.483 に答える
5

プロパティ ファイルを使用するだけで十分な場合もあります。

プロパティ ファイルは、キーと値のペアで構成されるテキスト ファイルです。このjava.util.Propertiesクラスは、プロパティ ファイルと対話するために使用されます。ただし、すべてがキーと値のペアであるため、もののリストを格納するのには適していません。

于 2010-06-03T20:23:29.793 に答える
2

次の 2 つの側面があります。

  1. RDBMSですぐに実装したい場合は、SQLiteなどの組み込みDBを使用してください。これは、 Firefoxなどの多くのデスクトップ アプリケーションで使用されます。

  2. パフォーマンスが懸念される場合は、組み込みのキーと値のペアの種類のストレージ ソリューションに go を使用します。

于 2010-06-03T21:50:31.897 に答える
2

どちらが「一般的に」好ましいと言う方法はありません。1 つのアプリでも、ユーザー データをシリアル化する方法がいくつかある場合があります。たとえば、コンピューターゲームを考えてみましょう。ゲームの設定を保存して、テキスト エディタで編集できるようにしたいです。ライセンス データをグローバルにアクセスできるように保存したいと考えています。ハイスコ​​ア データを保存して、誰も効果的に編集できないようにしたい。保存したゲームの状態を保存して、読み取りと書き込みが非常に高速になるようにしたいと考えています。これらの 4 つの異なる要件は、同じアプリ内で 4 つの異なるソリューションにつながる可能性があります。

于 2010-06-03T20:28:37.460 に答える
1

ファイルの作成に使用される形式に関係なく、ユーザーのホーム ディレクトリにファイルを保存することをお勧めします。

String userHome = System.getProperty("user.home"); // "/home/myusername"
于 2010-06-03T21:06:17.513 に答える
1

ユーザーがデータを微調整しても構わない場合は、XML を使用します。より複雑なデータについては、SQLite を使用します。ここで Java 実装を見つけることができます。

http://sqljet.com/

于 2010-06-03T20:53:52.013 に答える