Utilização de map, list e arquivo.txt

5 respostas
A

:cry: Prezados amigos,

Sou iniciante no estudo dessa maravilhosa ferramenta. Estou tentando fazer o seguinte trabalho:

Criei um classe chamada PlanoDeVoo que possui como único atributo uma variável mapa do tipo Map<String, List>. Os dados para popular o List vêm de um arquivo txt. No costrutor dessa classe passeei o nome do arquivo e coloquei a variável mapa. Como fazer para transferir os dados do aqruivo para o List de forma que construa o mapa. Não quero fazer isso no método main e sim na classe PlanoDeVoo.
Atenciosamente,

Antonio Paulo.

5 Respostas

E

Como está salva as informações em arquivo? Cite um exemplo de uma informação que este contém

R

Em primeiro lugar você vai precisar criar um método para ler o arquivo, e então inserir na lista o que vem do arquivo.
Se não sabe ler um arquivo txt, da uma lida aqui: manipulando-arquivo-txt-com-java

A

Prezado ederfreitas.
Segue cópia do arquivo para sua informação.
Atenciosamente,

Antonio Paulo.

A

Prezados,

A minha dúvida consiste em popular a List utilizando os dados de um arquivo txt.

Saudações,

Antonio Paulo.

E

Se você não trabalhar com objetos serializados terá que adotar um padrão, visto que seu arquivo mantém origem e destino salvos a cada linha separados por " -> ", eu adoria separar estado de cidade utilizando ";" Exemplo Cascavel;Maringa, no caso no seu código você faria leirua do Stream linha-a-linha e faria um split do ";" que retorna um array, onde no index 0 estará a cidade e no 1 estado, segue-se uma forma de fazer isso da forma que está, desta forma você lê seu arquivo e seta-o em um POJO:

public List<Voo>  getVoos(){
		List<Voo> listVoo = new LinkedList<Voo>();
		BufferedReader br  = null;
		int origem  = 0;
		int destino = 1;
		String [] avoo =  new String[2];
		try {
		    br = new BufferedReader (new FileReader ("C:\\voos.txt"));
		    for (String linha = br.readLine(); linha != null; linha = br.readLine()) {
		    	avoo = linha.split(" -> ");
		        Voo voo = new Voo();
		        voo.setOrigem(avoo[origem]);
		        voo.setDestino(avoo[destino]);
		        System.out.println("Origem "+voo.getOrigem());
		        System.out.println("Destino  "+voo.getDestino());
		        listVoo.add(voo);
		    }
		    return listVoo;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
		    if (br != null) try { br.close(); } catch (IOException ex) { }    
		}
		return null;
	}

public class Voo{
   private String origem;
   private String destino;

   public String getOrigem(){
      return this.origem;
   }
   
   public String getDestino(){
      return this.destino;
   }
   
   public void setOrigem(String origem){
      this.origem = origem;
   }
   
   public void setDestino(String destino){
      this.destino = destino;
   }   
}

P.S. Tire toda as linhas em branco do seu arquivo, caso contrário ele retorna NullPointerException após fazer o split ato tentar obter um valor no array.

Criado 17 de junho de 2011
Ultima resposta 17 de jun. de 2011
Respostas 5
Participantes 3