Baixar arquivo texto e ler seus registros

Preciso baixar um arquivo texto hospedado junto com meu site e depois ler todos os seus registros para uso em cálculos.

Tentei diversas formas de buscar que localizei em diversos fórums: Uri.parse, DownloadURL, etc.

Quais comandos devo utilizar? Preciso salvar o arquivo ou posso apenas abri-lo em uma variável e processá-la? Prefiro a segunda opção.

Grato por qualquer ajuda.

Ninguém teve esta necessidade?
Preciso ler o arquivo texto completo e ler registro a registro para uma das opções abaixo:

  1. selecionar os registros que me interessam e carregar em um array;
  2. carregar seu conteúdo nas tabelas do banco de dados SQLite

Veja se da certo para seu caso.

public static String readTextURL(String url) throws MalformedURLException, IOException { // server.com/text.txt
        String str = "";
        BufferedReader in = new BufferedReader(new InputStreamReader(new URL(url).openStream()));
        while ((str += in.readLine()) != null);
        in.close();
        return str;
    }

Divida o problema em 2 partes simples, e depois junte as duas. E para ajudar, é bom você saber que você pode (e deve) escrever código que depois será ou jogado fora, ou usado para fazer teste.

Primeiro, suponha que o arquivo já está em disco local. Como é que você lê os tais registros? Essa provavelmente é a parte mais complexa (e que merece mais testes) no seu programa. A vantagem é que é mais fácil de saber se algo está errado, e você provavelmente nem vai jogar muita coisa fora depois. Na verdade, você vai deixar isso reservado para fazer testes de regressão, porque sempre pedem alguma nova funcionalidade e você precisa ver se tudo que funcionava antes continua funcionando.

A seguir, veja como é que se baixa o arquivo que está no site para um arquivo em disco.

Você nem disse se o arquivo pode ser lido em uma passada só (ou seja, você começa do começo, vai até o fim, e nunca volta para trás para ler alguma coisa que não tinha processado antes) ou se ele precisa de acesso aleatório.

Se puder ser lido de uma passada só, é trivial você juntar a parte que baixa o arquivo do site com a parte que lê os registros de forma que nem seja necessário gravar em arquivo de disco.

E mais uma coisa: evite ficar lendo arquivos e os deixando em memória. Isso faz com que você acabe limitando os tamanhos dos arquivos lidos pela sua memória disponível, o que normalmente é ruim.

O problema é baixar e ver seu conteúdo, depois manipular.
Como baiar? procurei opções mas nenhuma funcionou, nem a do livro de Android.

O problema é baixar e ver seu conteúdo, depois manipular.
Como baixar? procurei opções mas nenhuma funcionou, nem a do livro de Android.
o arquivo está hospedado junto com meu site.

Primeiro veja se você consegue baixar o tal arquivo usando o browser do seu Android. Se não conseguir, não é a sua aplicação que vai conseguir :frowning:

O arquivo texto foi mostrado no navegador, vou tentar com outra extensão

Em vez de baixar o arquivo, por que você não usa webservice com JSON ?

Porque sou iniciante e não sei como fazê-lo, vou pesquisar.
esta seria a parte difícil do aplicativo, depois disto vou ler seus registros e efetuar alguns cálculos ou gravar no banco de dados.

Vi uma pergunta do entanglement que não respondi: vou ler o arquivo todo e guardar as informações que eu preciso ou vou gravar tudo no banco de dados.

É que eu terei dois aplicativos: o gratuito nem vai ter banco de dados e o pago vai ser bem mais completo, com banco de dados de pessoas e tabela e tudo o mais.

Com outra extensão aconteceu a mesma coisa que com TXT, abriu e mostrou os dados no navegador normalmente.

Obrigado pela ajuda, pessoal.

Pessoal, e se eu quiser, ao invés de fazer download da tabela, colocar todo o seu conteúdo dentro do strings.xml ou de outro xml, como posso fazer isto?

Colocar como string-array seria bem trabalhoso, pois cada linha tem 138 colunas e a manutenção ficaria complicada.

Tem alguma opção similar ao string-array que eu informe todo o conteúdo do arquivo?

Obrigado