1

ベクトルのコンポーネント (バイト) を順不同で計算するアルゴリズムがあります。これを実際に実行すると、ベクトルは数百万バイトの長さになるため、ベクトルをファイルに保存しています。しかし、簡単な例として、空のファイルから始めたいと思います:

-1 -1 -1 -1 -1 -1 -1 -1

次に、私のアルゴリズムは一度に 2 つの値を入力します。

-1 -1 4 7 -1 -1 -1 -1

それから

-1 -1 4 7 -1 -1 3 9

など、すべての値が入力されるまで。これは可能ですか? ランダム アクセス ファイルを使用してみましたが、seek() メソッドを使用すると、編集したい値の前のすべての値が 0 で埋められ、アルゴリズムが行った以前の計算が削除されます。このプログラムは大量の数列を処理する必要があるため、ファイル全体をメモリに格納することはできません。何か案は?

4

2 に答える 2

0

本当に答えではなく、ここでの提案です。申し訳ありませんが、ステータスについてはまだコメントできません

ファイルを開き、これらの値を一度にメモリの小さなチャンクに保存し、途中でメモリやものをクリアしながら別のファイルに書き込むだけです

于 2014-03-28T20:33:44.393 に答える
0

ほとんどのファイル システムは真のランダム アクセスではないため、実際的な観点から、ファイル全体を読み取ってディスクに書き戻すことなく、ファイルの途中を変更することは困難または不可能です。おそらく、一度に 1 つのセクションをファイルに読み込み、そのセクションを適切に変更してから、一時ファイルに書き戻す必要があります。完了したら、元のファイルを一時ファイルに置き換えることができます。

于 2014-03-28T20:35:40.137 に答える