2012-01-01 17 views
6

RSSフィードを処理し、フィルタして、一致するアイテムをダウンロードするRSSパーサをまとめています。ダウンロードされたファイルが合法的なトレントファイルであると仮定してください。テキストファイルまたはデータベースを使用する必要がありますか?

これで、すでにダウンロードしたファイルを記録しておく必要があります。そのため、ファイルは再作成されません。

すでにSQLite(データベースが存在しない場合は作成、select文が何も返されない場合は行を挿入)を使用していますが、生成されるjarファイルは2.5MB +(sqliteライブラリのため)です。

テキストファイルを使用すると、jarファイルを数百キロバイトに減らすことができます。

私は、ダウンロードしたファイルの名前のリストを保つことができる - 1行に1つの - とメモリにファイル全体を読み込み、ファイルが存在する場合、検索など

知っている私に起こるいくつかの質問を:

  • 1日に10件のファイルがダウンロードされた場合、テキストファイルの終了方法は、 のリソースを使いすぎるとしますか?
  • 全体的にどちらがとにかく

高速です、皆さんはどう思いますか?私はここでいくつかのアドバイスを使用することができます。私はまだプログラミングの初心者で、これを趣味のものとしてやっています:)

+0

+1実際のプログラムとの関連性はないにもかかわらずトレントは合法であると認定されています。それが私を笑顔にさせた。 – Taymon

答えて

4

ほんの少しの情報(ファイルの名前など)を追跡する必要がある場合は、シンプルなテキストファイルを使用してください。

BufferedReaderを使用すると、良好なパフォーマンスが得られます。

+0

キーと値のペアに縮小できれば、 'java.util.Properties'は簡単にジョブを実行します。 – alf

2

理論的にはDB(リレーショナルまたはNoSQLのいずれかに優れている。しかし、分布のサイズは、ファイルシステムを使用するために重要である場合が好ましいことができる。

ここでの唯一の問題は、データアクセスのパフォーマンスが(書き込みのためか、のいずれかのためにありますファイル名には、マップ内のキーのように特定のデータにアクセスするためのキー(またはキー)が含まれていることがあります。

おそらくXStreamを見てみましょう。上記のように実装されたMapの実装を持っています:stores entrディスク上にあり、各エントリは別々のファイルに格納されています。

+0

データアクセスにはどのような問題がありますか?私はいつでも特定の時間に読んだり書いたりするだけで、両方ではありません。 - 遅れて返信するbtw – lelouch

関連する問題