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:
- selecionar os registros que me interessam e carregar em um array;
- 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 
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