1

プレーン テキスト ファイルから読み取るプログラムがあります。これらのファイルの量は 500 万を超える場合があります。

それらを読んでいるときに、名前で見つけました!名前は基本的に、マトリックスの x および y として保存されます (例: 440x300.txt)。

今、それらすべてを 1 つの大きなファイルに入れてインデックスを作成したい

つまり、たとえば 440x300.txt がファイルに保存され、どのバイトからどのバイトで終わるかを正確に知りたいということです!

私の最初のアイデアは、別のファイルを作成し、この情報を各行に 440 x 300 150883 173553 が含まれるように保存することでした

しかし、この情報を見つけるのにも多くの時間がかかります!

開始位置と終了位置を調べるには、 がより良い方法であるかどうかを知りたいです!

何らかの方法でファイルにインデックスを付ける

助けてください

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

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

4

2 に答える 2

0

これらのファイルを読み取るだけでよい場合は、バッチでアーカイブします。たとえば、ZIP または Jar 形式を使用します。これにより、ファイルの命名とインデックス作成がサポートされ、標準ツールを使用してそれらを構築、更新、およびチェックできます。

1 つのアーカイブに 500 万のファイルを配置することは可能ですが、少数のアーカイブを使用する方が管理しやすい場合があります。

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

于 2012-04-25T13:33:49.207 に答える
0

ファイル内で直接アドレス指定を実行できるようにする場合は、次の 2 つのオプションがあります。

  1. ファイルの先頭にインデックスを付けて、(x, y) に基づいて開始/終了アドレスを検索できるようにします。
  2. ファイル内のレコードの場所を簡単に計算できるように、すべてのレコードをまったく同じサイズ (バイト単位) にします。

適切なオプションの選択は、次の基準に基づいて行う必要があります。

  1. マトリックス内の各セルのレコードはありますか?
  2. マトリックス値は変化しますか?
  3. マトリックスの次元は変化しますか?
  4. マトリックス内の値は、固定バイト長 (数値または文字列) を持つことができますか?
于 2012-04-25T13:35:28.140 に答える