Dúvida com arquivo

0 respostas
Badeko

Bom dia galera é o seguinte, eu tenho que fazer um trabalho pra faculdade e eu estou com uma dúvida é o seguinte, o código está quase pronto eu só tenho que implementar o simulaviagem, tem dois arquivos que fazem a leitura um se chama itinerário o outro passageiro, segue abaixo uma parte dos arquivos;

itinerário:

Palmas;Cuiabá
Cuiabá;Porto Velho
Porto Velho;Rio Branco
Rio Branco;Manaus
Manaus;Boa Vista

passageiros:

Luis Olegário;Rio de Janeiro;Curitiba
Maria Zuleide;Belém;Brasília
Alex Castro;Porto Velho;João Pessoa
Hugo Constantino;Aracaju;Vitória
Carlos José;Brasília;Porto Alegre
Cláudio Antônio;Fortaleza;Natal
Cleópatra Maria;Boa Vista;Recife
Severino Costa;Macapá;Belo Horizonte

tenho o código passageiro e o Io
Passageiro:

package estudodecaso2;

/**
 *
 * 
 * Classe destinada a representar um passageiro. Possui como atribuitos o 
 * nome e o trecho ao qual o passageiro pretende (possui intenção de) viajar.
 * 
 */
public class Passageiro {
    private String nome;
    private TrechoPretendido trechoPretendido = new TrechoPretendido();

    public class TrechoPretendido {
        String cidadeOrigem,cidadeDestino;
    }    

    public Passageiro(String nome, String cOrigem,String cDestino) {
        this.nome = nome;
        this.trechoPretendido.cidadeOrigem = cOrigem;
        this.trechoPretendido.cidadeDestino = cDestino;
    }
    
    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public TrechoPretendido getTrechoPretendido() {
        return trechoPretendido;
    }   
   
}

Io:

/*
 * Arquivo de entrada e saída de dados
 * 
 */

package estudodecaso2;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.StringTokenizer;

/**
 *
 * 
 * Classe destinada a representar o objeto que realizará a leitura dos arquivos de entrada
 * (passageiros.txt e itinerario.txt) e a escrita dos arquivos de saída (saida1.txt e saida2.txt).
 * 
 */
public class Io {
    
    private ArrayList<Passageiro> conseguiramViajar = new ArrayList<Passageiro>();
    private ArrayList<Passageiro> naoConseguiramViajar = new ArrayList<Passageiro>();
    
    public ArrayList<Trecho> lerArquivoItinerario(String sFileName, Veiculo veiculo) {
        File arquivo = new File(sFileName);
        
        if(!arquivo.exists())
        {
            System.err.println("Arquivo \""+sFileName+"\" não existe.");
            return null;
        }
             
        try //tentativa de execução do seguinte código:
        {
            ArrayList<Trecho> lista = new ArrayList<Trecho>();
            BufferedReader leitor  = new BufferedReader(new FileReader(arquivo)); //leitor sequencial

            // Recupera todas as linhas de modo sequencial
            String linha = null;
           // int indice = 0; //índice do trecho, para facilitar o cálculo de intersecção de trechos, saber quando uma viagem acabou, etc.
            while ((linha = leitor.readLine()) != null) {
                //<cidade_origem>;<cidade_destino>
                StringTokenizer st = new StringTokenizer(linha, ";");
                Trecho trecho = new Trecho();
                trecho.setCidadeOrigem(st.nextToken()); //<cidade_origem>  
                trecho.setCidadeDestino(st.nextToken()); //<cidade_destino>           

                lista.add(trecho);
             }

            
            leitor.close(); //fechar leitor
            
            return lista;
            
         } catch (IOException e) {
            //exibe o erro na saída de erro (err)
            System.err.println("Ocorreu um erro: "+e.toString());            
         }//fim try catch
         
        return null;
    }// fim  lerArquivoItinerario 
    
    public ArrayList<Passageiro> lerArquivoPassageiros(String sFileName) {
        File arquivo = new File(sFileName);
        
        if(!arquivo.exists())
        {
            System.err.println("Arquivo \""+sFileName+"\" não existe.");
            return null;
        }
        
        try //tentativa de execução do seguinte código:
        {
            ArrayList<Passageiro> lista = new ArrayList<Passageiro>();
            BufferedReader leitor  = new BufferedReader(new FileReader(arquivo)); //leitor sequencial

            // Recupera todas as linhas de modo sequencial            
            String linha = null;
            while ((linha = leitor.readLine()) != null) {
                //<nome_passageiro>;<cidade_origem>;<cidade_destino>
                StringTokenizer st = new StringTokenizer(linha, ";");
                String sNomePassageiro = st.nextToken();
                String cOrigem = st.nextToken();
                String cDestino = st.nextToken();
                               
                Passageiro passageiro = new Passageiro(sNomePassageiro,cOrigem,cDestino);

                lista.add(passageiro);
             }

            
            leitor.close(); //fechar leitor
            
            return lista;
            
         } catch (IOException e) {
            //exibe o erro na saída de erro (err)
            System.err.println("Ocorreu um erro: "+e.toString());            
         }//fim try catch
         
        return null;
    }// fim  lerArquivoPassageiros
    
   
    public void AdicionarPassageiroConseguiuViajar(Passageiro p){
        conseguiramViajar.add(p);
    }
    public void RemoverPassageiroConseguiuViajar(){
        conseguiramViajar.remove(conseguiramViajar.size()-1);
    }
    
    public void AdicionarPassageiroNaoConseguiuViajar(Passageiro p){
        naoConseguiramViajar.add(p);
    }

   public Boolean gerarSaida1(String sFileName){
        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new FileWriter(sFileName));
            for (int i = 0; i < conseguiramViajar.size(); i++) {
                out.write(conseguiramViajar.get(i).getNome()+";"+
                          conseguiramViajar.get(i).getTrechoPretendido().cidadeOrigem+";"+
                          conseguiramViajar.get(i).getTrechoPretendido().cidadeDestino+"\r\n");
            }
            out.close();
            return true;
        } catch (IOException ex) {
            System.err.println("Ocorreu um erro gerando saída. ex="+ex.toString());
            return false;
        } finally {
            try {
                out.close();
            } catch (IOException ex) {
                System.err.println("Saída em memória: erro fechando arquivo de saída. ex="+ex.toString());
            }
        }
    }
    
    
    public Boolean gerarSaida2(String sFileName){
        BufferedWriter out = null;
        try {
            out = new BufferedWriter(new FileWriter(sFileName));
            for (int i = 0; i < naoConseguiramViajar.size(); i++) {
                out.write(naoConseguiramViajar.get(i).getNome()+";"+
                          naoConseguiramViajar.get(i).getTrechoPretendido().cidadeOrigem+";"+
                          naoConseguiramViajar.get(i).getTrechoPretendido().cidadeDestino+"\r\n");
            }
            out.close();
            return true;
        } catch (IOException ex) {
            System.err.println("Ocorreu um erro gerando saída. ex="+ex.toString());
            return false;
        } finally {
            try {
                out.close();
            } catch (IOException ex) {
                System.err.println("Saída em memória: erro fechando arquivo de saída. ex="+ex.toString());
            }
        }
    }
    
}

ae eu gostaria de saber como pegar no arquivo passageiro o nome dele pegar a cidade de origem e a cidade de destino e compara com o intinerário se a cidade de origem e destino do passageiro existe.

Criado 24 de novembro de 2008
Respostas 0
Participantes 1