Lock em arquivo remoto

10 respostas
antoniosales

Ola a todos,

Minha rotina abri um arquivo remoto para leitura assim:

URL amplus = new URL("http://tst.fateci.com.br/academico/desenvolve/emprestimos/dados.txt");
    URLConnection amp = amplus.openConnection();
    amp.setConnectTimeout(7000);
    amp.connect();
    BufferedReader in = new BufferedReader(new InputStreamReader(amp.getInputStream(), "ISO-8859-1"));

Nessa dica é usado o FileLock na abertura de arquivo local:
http://www.arquivodecodigos.net/dicas/java-como-travar-lock-um-arquivo-para-uso-exclusivo-e-depois-libera-lo-462.html

Minha duvida é:

Como fazer isso em um arquivo remoto:

Antonio

10 Respostas

nel

Boa tarde.

Na realidade, se você está trabalhando com o arquivo remoto e tens liberdade para tal, devo deduzir que podes trabalhar com este arquivo como se fosse um arquivo local.
Já tentou realizar o Lock no arquivo?

Ele utiliza o FileChannel e em seguida, o FileLock.
Abraços.

antoniosales

eu tentei fazer assim:

import java.nio.*;
import java.nio.channels.FileLock;

    URL amplus = new URL("http://tst.fateci.com.br/academico/desenvolve/emprestimos/dados.txt");
    URLConnection amp = amplus.openConnection();
    amp.setConnectTimeout(7000);
    amp.connect();
    StringBuilder lines = new StringBuilder();
    BufferedReader in = new BufferedReader(new InputStreamReader(amp.getInputStream(), "ISO-8859-1"));
    FileLock fl = in.getChannel().tryLock();

usando o netbeans apareceu a mensagem:
cannot find symbol
symbol: method getChannel()
location: class java.io.BufferedReader

na linha: FileLock fl = in.getChannel().tryLock();

nel

Javadoc da classe BufferReader.

Conforme pode ver, não existe o método getChannel na classe BufferReader.
Transforme esse InputStream para um FileInputStream e ai sim, utilize o método getChannel.

Edit: dê uma navegada ali no link, basta ir ao pacote java.io, clicar nesta opção, abaixo aparece a lista de classes pertencentes a este package e depois selecionar a classe desejada.

Abraços.

antoniosales

Tem algum exemplo ou dica ou tutorial de como FileInputStream em um arquivo remoto, a minha nessecidade é com arquivo remoto eu leio e imprimo esse arquivo, mastenho que bloquear enquanto faço essa operação.
Ja tentei de diversas maneiras.

Grato

pmlm

Bloquear em http? Algo não me está a parecer bem aqui…

antoniosales

Tem como?

nel

Você tem acesso ao arquivo?
Exemplo, você consegue buscar o arquivo remoto e escrever no disco do seu PC?

Abraços.

antoniosales

Tenho total acesso a esse arquivo. leio escrevo e imprimo. Esse arquivo fica no servidor da empresa que eu trabalho.

pmlm

Mas por http não escreves… Se queres editar o ficheiro no servidor tem de ser de outra forma

antoniosales

Valeu, vou vê a possibilidade de colocar um arquivo php fazendo flock dentro do servidor.

Criado 8 de setembro de 2010
Ultima resposta 9 de set. de 2010
Respostas 10
Participantes 3