Como abrir um arquivo txt?

7 respostas
igor_jua

Pessoal, preciso saber urgentemente como faço para abrir um arquivo.txt sem ser no modo exclusivo?
meu programa precisa permitir que um outro sistema possa escrever ou ler este arquivo mesmo que meu programa esteja fazendo isto em um determinado momento.

7 Respostas

davidtiagoconceicao

E isso funciona? Não acho que seja confiável dois programas diferentes escreverem no mesmo arquivo ao mesmo tempo. Por que você precisa de uma implementação deste tipo?

davidtiagoconceicao

Em todos os casos, fiz alguns testes abrindo o mesmo arquivo através de um programa java e através do notepad++ ao mesmo tempo. Consegui gravar a partir de um e a partir do outro (não testei gravando exatamente ao mesmo tempo).
Você efetuou algum teste fazendo diversas gravações ao mesmo tempo? Teve algum problema?

igor_jua

David minha maior preocupação é fazer com que dois programas possam ler um mesmo arquivo ao mesmo tempo.
pq é o seguinte.
eu estou fazendo uma comunicação entre dois sitemas.
um em java e outro em uma linguagem que agente tem aqui na empresa.
eu uso um bloqueio para estes saberem a hora de executar algo.
este bloqueio é feito atraves de um txt.
meu programa(java) tem uma thred que fica verificando se há alguma coisa para ele fazer, ou seja, fica abrindo de tempos em tempos este txt para ver se esta desbloqueado para executar uma certa ação.
o problema é que há momentos em que quando esta thread abre este arquivo o outro programa não pode encherga-lo. e eu preciso que ambos os 2 encherguem o mesmo aquivo ao mesmo tempo. a parte da escrita eu já solucionei.

minha principal duvida é:
como eu faço para que estes dois programas possam ler o arquivo ao mesmo tempo?

davidtiagoconceicao

E tem que ser exatamente o mesmo arquivo?
Já vi situaçõs semelhantes em que um programa gerava um novo arquivo a cada determinado evento. O programa que precisava ler estes arquivos lia sempre o arquivo mais velho e, ao terminar o processamento, excluía este arquivo. Assim, era formada uma espécie de fila de arquivos para serem processados.
Quem sabe algo nesse sentido lhe seja mais interessante.

igor_jua

Cara de preferencia sim, pois como é uma comunicação de sistemas então eu consigo ir mudando os arquivos a serem lidos, mas ele(sem ser o java) creio que não possa fazer isto.
vc acha que é possivel fazer isso que eu estou querendo?
sei que é mta gambiarra, mas situação desesperadoradoras requeerem medidas desesperadas…
=D

vlww

Focao

a idéia do davidtiagoconceicao é a mais indicada…

deixa só um cara fazer IO e vc consegue .

se ta aberto manda a thread esperar

Como saber se um arquivo esta aberto ?

veja esse link do forum…

http://www.guj.com.br/posts/list/22220.java

igor_jua

cara é pq tipo…simplificando ao máximo…
imagine que o outro sistema seja algum pad aberto escrevendo neste txt.
existe um bloqueador para saber quem deve efetuar uma execução(se é o java ou o lpd).
o programa java possui uma thread que faz isso.
logo eu preciso ler o arquivo que esta aberto.

eu preciso que os 2 leiam o mesmo arquivo ao mesmo tempo.

é possível isto?

Criado 27 de janeiro de 2009
Ultima resposta 27 de jan. de 2009
Respostas 7
Participantes 3