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.