Acesso simultaneo no arquivo

5 respostas
H

Oi!

Estou com o seguinte problema: fiz um applet que fica lendo dados de um arquivo txt. So q esse arquivo txt é atualizado por um sw em C. O meu problema é q as vezes o java tenta ler qdo o C está escrevendo no arq, pendurando o java.

Gostaria de saber se tem alguma funcao p o java ficar testando se o txt está sendo escrito e só iniciar a leitura qdo o mesmo estiver liberado pelo C.

Muito obrigado!

Heloisa

5 Respostas

T

Se o seu applet estiver usando o JRE 1.4 e você puder modificar o programa em C (você vai descobrir que isso é só um “wishful thinking”…) você poderia tentar java.nio.FileChannel.lock/isLocked no lado Java, e lock ou flock no lado C, e usar o conceito de “travamento de arquivos” (file locking).

_fs

File.canRead() não resolve? Não manjo muito desse assunto :expressionless:

T

Infelizmente File.canRead() checa apenas se existe acesso de leitura ao arquivo, não se ele está sendo travado no presente momento. Mesma coisa para File.canWrite(), que só checa acesso de escrita. Que pena…

H

Oi pessoal,

Agradeco as dicas de vcs! :slight_smile:

Resolvi o meu problema utilizando o flock no meu software em C (dica postada no forum).

Muito obrigado!

Helo

T

Legal.

Agora voltando ao meu café…

Criado 22 de setembro de 2004
Ultima resposta 24 de set. de 2004
Respostas 5
Participantes 3