Ler arquivo TXT e separar por categoria

11 respostas
programaçãojava
Mauro_Vaz_da_Silva

Boa noite, sou iniciante em java e preciso de ajuda em um trabalho acadêmico.

Meu problema é o seguinte, tenho um arquivo texto com diversos dados separados em duas categorias, ano e pais, preciso fazer com que o leitor pegue o arquivo e separe nessas categorias, pegando todos os dados de determinado ano e determinado pais e jogando em um vetor a parte, a questão é consigo fazer isso em código ou terei q criar um arquivo pra cada categoria?

11 Respostas

marco_aurelioo

Pela descrição do enunciado vc ja tem o arquivo, só tem que apresentar os valores separados em memoria acredito que não tem necessidade de gravar os arquivos de retorno, se bem que isso não deveria ser um problema pois se vc ja consegue ler informações de um arquivo salvar em um é simples também.

Mauro_Vaz_da_Silva

Eu tenho o arquivo, e consigo ler ele, mas por exemplo, preciso fazer a media de expectativa de vida de todos os países do ano de 1960
não to conseguindo limitar de pegar só os de 1960 ele faz a conta com todos os ano.

Jonathan_Medeiros

Percorra o vetor, verifique os registros que tem o ano de 1960 e calcule!

Mauro_Vaz_da_Silva

Sim, isso foi, a questão é, terei q repetir o código pra todos os anos, ou consigo fazer um método pra todos e me facilitar

Jonathan_Medeiros

Até agora você está recuperando os dados do arquivo texto e atribuindo a um vetor certo ?
Com o vetor preenchido, percorra o mesmo, verifique os países que tem ano igual a 1960, armazene em um segundo vetor e faça os cálculos que precisa!

Mauro_Vaz_da_Silva

Ok, consegui, mas como faço pra chamar o vetor em outra classe? sempre me retorna erro

marco_aurelioo
1 -  vc deve deixar a variavel no contexto global da classe

2 - vc deve deixar o acesso dela visivel por meio de metodo ou escopo



public class MinhaClasse{

private List minhaLista;
public void carregaLista(){

//faz a leitura do arquivo e salva na lista

}
public List getLista(){

return this.minhaLista;

}

}

//na outra classe:

MinhaClasse classeComLista = new MinhaClasse();

classeComLista.carregaLista();

List lista = classeComLista.getLista();
Jonathan_Medeiros

Depende de como você declarou o mesmo!
A maneira correta seria, declare ele na classe a qual ele deve pertencer com acesso privado, crie os métodos de acesso so vetor, ou seja, get e set, e a partir é só usar!

Mauro_Vaz_da_Silva

public class LeitorCsv {

private List minhaLista;

public void leitorCSV() {

String arquivoCSV = "c://WorkSpace//Nova pasta//idadeMedia.txt";
    BufferedReader br = null;
    String linha = "";
    String csvDivisor = ",";
    
try {

    br = new BufferedReader(new FileReader(arquivoCSV));
    while ((linha = br.readLine()) != null) {

        String[] registro = linha.split(csvDivisor);
     
    for(int i=0;i<50;i++)
        minhaLista[i]=registro[i];
        
        
    } <

O codigo ficou assim mas ta dando "array Required,but List found.
Sabe me dizer oq fiz de errado ? to em desespero ja kk

Mauro_Vaz_da_Silva

Então é meio oq estou tentando fazer, criei a variável fiz um método pra ler o arquivo,
agr to tentando fazer um pra pegar o arquivo., mas to travado nisso desde ontem

Jonathan_Medeiros

Crie sua lista com o mesmo tipo do array!
E a atribuição se dá por list.add(object) e não list = object.
Da uma revisada no seu código, você está no caminho!

Criado 27 de maio de 2018
Ultima resposta 27 de mai. de 2018
Respostas 11
Participantes 3