1

ローカルファイルシステム(ユーザーのコンピューター)上のファイルを非常に頻繁に(1秒に数回)読み取り、そのファイルの内容をjavascriptを介してWebページで利用できるようにするアプレットを作成しようとしています。

アプレットが読み取る必要のあるファイルは、ユーザーのコンピューター上のプログラムによって頻繁に更新されます。私が心配しているのは、ファイルが更新されている最中にアプレットがファイルからデータを読み取るとどうなるかということです。

これがどれほど可能性があるかはわかりませんが、それが有効な懸念事項である場合、ファイルを読み取る前に、ファイルが現在書き込まれていないことを確認する方法はありますか?

4

2 に答える 2

2

私はこれについて前向きではありませんがjava.io.FileInputStream、またはそのパッケージの他のオプションを試すことができます。

また、この質問は重複している可能性があります。これはあなたの質問に答えるかもしれません:

  1. Javaを使用して、アクティブに書き込まれているファイルから読み取るにはどうすればよいですか?
  2. 書き込み中にファイルを読み取る
  3. 書き込み中にファイルを読み取る
  4. 書き込み中にファイルからデータを読み取る
于 2013-03-12T02:52:47.003 に答える
1

そのようなディスクアクセスを行うのは非常に怪物です。可能であればSocketsを試してみてください。または、ロックの1つが失敗した場合は、両端でファイルをロックして、もう1つがロックされていることを確認してください。使用する

File file = new File(fileName);
FileChannel channel = new RandomAccessFile(file, "rw").getChannel();
// Get an exclusive lock on the whole file
FileLock lock = channel.lock();
try {
    lock = channel.tryLock();
    // Ok. You get the lock
} catch (OverlappingFileLockException e) {
    // File is open by other end 
} finally {
    lock.release();
}
于 2013-03-12T02:19:01.367 に答える