1

常に更新されているテキスト ファイルに書き込まれたすべての行を読み取りたい。次の方法を試しましたが、これにより重複したファイルを読み取ることになりました。

  1. ファイルサイズを取得する
  2. ゼロからファイルの最後まで読み取る
  3. 手順 1 のファイル サイズからファイルの末尾まで読み取りを開始します。
  4. 前の手順を繰り返します

これに関する問題は、ファイルの読み取り中にファイルに書き込まれるファイルを複製することです。これは、ファイルの最後まで読んでいるためです。

私がやりたいことは次のとおりです

  1. ファイルサイズを取得する
  2. ステップ 1 からゼロからファイル サイズまで読み取ります
  3. ファイルサイズを取得する
  4. 手順 1 のファイル サイズから手順 3 のファイル サイズまで読み取りを開始します。
  5. 前の手順を繰り返します

このようにして、読み取った行が重複することはありません。

これは可能ですか?ストリームリーダー/ファイルリーダーがファイルを読み取るには、開始点と終了点を指定する必要があると思います。

4

2 に答える 2

0

プロセス間通信にファイルを使用する必要がある場合は、メモリ マップ ファイルを使用して調査できます。

于 2012-09-20T13:53:51.850 に答える
0

次のようなことを試すことができる場合があります。

  1. ファイルの名前を一時的な名前に変更します
  2. 元の名前で新しい空のファイルを作成します
  3. 一時ファイルを処理する
  4. 繰り返す

何らかの理由でファイルが常に他のプロセスによってロックされている場合は、同じプロセスのこの変更を試すことができます。

  1. ファイルを一時的な名前にコピーします
  2. ファイルサイズに注意
  3. ファイルを処理する
  4. 次のパスで FileSize + 1 から処理を開始して繰り返します
于 2012-09-21T06:08:02.500 に答える