Oi gente, duvida leitura txt em Arraylist

7 respostas
B

Oi, gente.

Estou com uma dúvida, preciso ler um arquivo txt e colocar as informações em um Arraylist, ja quebrei a cabeça e nada.

É algo do tipo, possuo um arquivo txt como exemplo:

Identificação:1234;Departamento:20;
Identificação:304;Departamento:10;

Preciso de um Arraylist que pegue essas infos do txt e capture a identificação e departamento no mesmo indice.

Se alguem puder me da um exemplo de codigo eu agradeceria.

;D

7 Respostas

D

Eu vou tentar:

public void lerArquivo(){
  BufferReader buff=new BufferReader(new FileReader("Caminho de arquivo txt"));
  List<String>lista=new ArrayList<String>();
  while((String linha=buff.readLine())!=null){
  lista.add(linha);


}

}

Caso não funcione, poste.

Roger75

Para cada linha você terá uma string.
Com o método split da classe String você consegue separar os elementos da linha. Por exemplo:

String str="Identificação:1234;Departamento:20;"

A linha abaixo

String[] array1; array1=str.split(";");

vai separar as palavras que estão entre “;” e colocar no array “array1”.

Depois você usa o split para cada elemento do array1, só que com separador “:”

Talvez você nem precise colocar “Identificador” e “Departamento” no txt, pois o que te interessa é o código de cada um.

B

Bom dia.

Obrigada pelas dicas, foram muito uteis!só que tem um porém…

1-Isso é uma tarefa da faculdade e não posso usar um vetor, teria ja que armazenar num Arraylist para depois manipular.

2-Outro porém, é que quando vou imprimir no console lendo um arquivo txt, ele imprimi meio “loco”, como por exemplo:
Se no arquivo txt tiver:
Freq:10;Identificador:43; por exemplo, qnd vou imprimir aparece: []F[]r[]e[]q[]:[]1[]0;… Entenderam?a cada letra aparece um “quadradim” desses…o que seria?

Obrigada a todos.

T

Ah, provavelmente seu arquivo .txt foi salvo como Unicode. Se isso ocorreu, faça uma de duas coisas:

  • Carregue seu arquivo de novo no Bloco de Notas, e então no menu Arquivo escolha Salvar Como…, e mude o combo que diz “Codificação” para ANSI. Então clique em Salvar.
  • Ou então, o que é um pouco chato porque vai dar problemas com arquivos-texto normais, abra seu arquivo-texto com:
BufferedReader buff=new BufferedReader(new InputStreamReader (new FileInputStream ("Caminho do arquivo txt"), "UTF-16")));
B
Bel:
1-Isso é uma tarefa da faculdade e não posso usar um vetor, teria ja que armazenar num Arraylist para depois manipular.
Parece uma restrição artificial, a partir do split que gera um array, você pode colocar o array cada dado em uma objeto, e os objetos na List, para manipulações posteriores.
Bel:
2-Outro porém, é que quando vou imprimir no console lendo um arquivo txt, ele imprimi meio "loco", como por exemplo: Se no arquivo txt tiver: Freq:10;Identificador:43; por exemplo, qnd vou imprimir aparece: []F[]r[]e[]q[]:[]1[]0;... Entenderam?a cada letra aparece um "quadradim" desses..o que seria?

Não dá pra ter certeza sem você postar o teu código (formatado, entre as tags de [code]).

B

Obrigada a todos pela ajuda.

Qualquer duvidas a mais eu posto aqui.

D

Ajudou bastate aki

Criado 24 de março de 2009
Ultima resposta 2 de jun. de 2009
Respostas 7
Participantes 6