2012-04-25 12 views
1

私はプレーンテキストファイルから読み込み中のプログラムを持っています。これらのファイルの量は、その5万人以上になることができます!複数のファイルを1つのファイルにインデックスする

私がそれらを読んでいるとき、彼らを名前で見つけました!名前は、基本的に今、私は一つの大きなファイルとインデックス彼らに私は私がしたいわけ

でそれらのすべてを入れたい

440x300.txt例えばマトリックスのxとyとして保存されている今、まさに例えば、440x300のための.txtは、バイトと終了のファイルから保存されます。

私の最初のアイデアは、各ラインは440×300 150883 173553

が含まれていますが、同様に別のファイルを作成し、その中でこの情報を保存することだったでしょうにも多くの時間をこの情報を見つけます!

私は、彼らがどこで始まり、終わるのかを知るためのより良い方法であるかどうかを知りたいと思います!

どういうわけか、インデックスファイルを

私はJavaでプログラミングしていますちなみに

を助けてください。

お時間をいただきありがとうございます。

+0

明確ではありません!私は何が欠けているか分からないので、私は答えて尋ねてください!ごめんなさい! – Khashayar

+0

*「これらのファイルの量は5百万以上になる可能性があります!」*その量はメガバイト、文書数、キログラムですか? –

+0

ファイル数!各ファイルは10〜50 KBのようにすることができます! – Khashayar

答えて

0

これらのファイルを読み込む必要がある場合は、それらをバッチでアーカイブします。例えばZIPまたはJAR形式を使用します。これは、ファイルの命名と索引付けをサポートし、標準ツールを使用してファイルを構築、更新、チェックすることができます。

1つのアーカイブに500万のファイルを保存することは可能ですが、少数のアーカイブを使用する方が管理しやすくなります。

ところで:ファイルはテキストなので、圧縮するとファイルも小さくなります。あなたは、それらの1000と言うZIPまたはJARを作成することでこれを自分で試すことができます。

+0

いいえ、私は最初にそれらを保存し、後で別のプログラムでそれらを読みたいですか!私は毎回それらをアーカイブすることはできませんし、私はそれらを読んでみたいときに抽出します! – Khashayar

+0

個別のファイルではなく、それらをメモリに抽出することができます。これは、あなたが提案するものと変わらないでしょう。 –

+0

私の提案は悪いことなので、私はより良い解決策を探しています! – Khashayar

0

あなたはファイル内で直接アドレス指定を行うことができるようにしたい場合は、次の2つのオプションがあります。あなたがベースの開始/終了アドレスを検索できるように、ファイルの先頭にインデックスを

  1. を持っています(x、y)
  2. すべてのレコードを正確に同じサイズ(バイト単位)にすると、ファイル内のレコードの位置を簡単に計算できます。

次の基準に基づいて行われるべきである右のオプションを選択:

  1. あなたは行列の各セルのレコードを持っていますか?
  2. マトリックスの値は変更されますか?
  3. マトリックスの寸法は変わるのですか?
  4. 行列の値は固定長のバイト(つまり数字か文字列)ですか?
+0

いいえ、なぜ私はオプション2を行うことができないのと同じサイズのデータ​​を持っていません!オプション1のための – Khashayar

+0

問題は、ファイルの最初の行を読むことも多くの時間がかかるでしょう!その5百万人! – Khashayar

+0

他に何かありますか? – Khashayar

関連する問題