Lendo dados de um arquivo dentro do projeto

by Cinta Vidal Agullo / from beautifuldecay.com

Quando colocamos por exemplo um arquivo txt dentro da pasta “src/Files/meuarquivo.txt” de nosso projeto, um erro bem comum é que ao sermos influenciados pela lógica vamos capturar esse arquivos através de new File(“src/Files/meuarquivo.txt”) em algum lugar de nosso código Java. Primeiramente, obviamente o nosso código Java que captura esse arquivo será executado após ser compilado, e após a compilação nosso arquivo “meuarquivo.txt” não estará mais dentro da pasta “src” e seu novo caminho será “bin/Files/myfile.txt”, já que código compilado vai para a pasta “bin” de nosso projeto.

Em segundo lugar, para evitar esse problema da localização real do arquivo, podemos usar a chamada de getClass().getResource(“/Files/meuarquivo.txt”) ou getClass().getResourceAsStream(“/Files/meuarquivo.txt”), e o contexto será responsável por apresentar o caminho completo, já que é a instância que contém informações sobre o ambiente. Outro meio também de capturar os arquivos é colocando-os em uma pasta tipo raw dentro da pasta “res” (e.g. “res/raw/meuarquivo.txt”) e capturando através de context.getResources().openRawResource(R.raw.meuarquivo) como no exemplo completo abaixo:


InputStream inputStream = context.getResources().openRawResource(R.raw.meuarquivo);
DataInputStream dataInputStream = new DataInputStream(inputStream);
byte [] fileBytes = new byte [(int) inputStream.available()];
dataInputStream.readFully(fileBytes);
dataInputStream.close();

Veja uma discussão sobre esse tema em http://stackoverflow.com/a/2851056

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s