Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

como ler arquivo txt e usar split e arraylist

tenho um exercício e nele preciso ler um arquivo txt como o exemplo abaixo,

MATRICULA; NOME; CPF ; MENSALIDADE

2018; Rodrigo Barbosa ;700.367.008-77 ; R$; 2018; Fabricio Souza ;700.367.008-77 ; R$; 2018; Lucas Moura ;700.367.008-77 ; R$; 2018; Marcelo Lopes ;700.367.008-77 ; R$; eu preciso fazer a leitura do arquivo e usar o split como quebra de linha após cada virgula encontrada, além disso preciso guardar tudo dentro de um array list, o outro problema é usar random para gerar mensalidade em valor aleatório, mais isso eu me viro, alguém pode me ajudar a fazer a primeira parte, por favor ?

insira seu código aqui

public static void main(String[] args) throws FileNotFoundException {

        Aluno dadosAluno = new Aluno();

    try {

        File caminhoDoTexto = new File("C:/Users/rodrigo/Desktop/aluno.txt");

        // Indicamos o arquivo que será lido
        FileReader lerCaminhoDoTexto = new FileReader(caminhoDoTexto);

        // criamos o objeto BufferedReader que nós oferece o método de leitura readLine()
        BufferedReader lerArquivo = new BufferedReader(lerCaminhoDoTexto);


        /* Fazemos um loop linha a linha do arquivo enquanto ele seja diferente de null
           o método readLine() devolve a linha na posição do loop para a variavel linha */
        while (lerArquivo.ready()) {
            String texto = lerArquivo.readLine();
            String textoSplit [] = texto.split(";");

            for(int posicao = 0; posicao < 4; posicao++){
                 dadosAluno.aluno.add(textoSplit[posicao]);
                 System.out.print(textoSplit[1]);
            }


        }
        lerArquivo.close();

    } catch (IOException e) {
        System.out.println("Arquivo não encontrado");

    }
7 respostas
solução!

Segundo esse erro

 public static void main(String[] args) throws FileNotFoundException {

ele não está achando o arquivo na pasta . Verifique por gentileza se o arquivo está na pasta mesmo.

eu retirei essa parte assim como você me disse, mas continua dando erro, meu maior problema é controlar a questão do ; como meu vetor tem 4 posições por linha, eu preciso ler um linha e no final dela quando encontrar o ; pula para linha debaixo, e assim sucessivamente até a última linha, além disso preciso guardar isso tudo dentro de um arraylist, pode me ajudar com isso por favor ?

Claro que te ajudo.

Pode me mostrar a classe do Aluno por gentileza.

vou fazer dois comentários assim fica melhor para você entender, talvez eu esteja fazendo de forma errada, pois meu conhecimento ainda é básico, agora que estou iniciando para ter um conhecimento intermediário, no outro comentário vou inserir só os código

ESTE É O PROGRAMA PRINCIPAL

public static void main(String[] args) {

        Aluno dadosAluno = new Aluno();

    try {

        File caminhoDoTexto = new File("C:/Users/rodrigo/Desktop/aluno.txt");

        // Indicamos o arquivo que será lido
        FileReader lerCaminhoDoTexto = new FileReader(caminhoDoTexto);

        // criamos o objeto BufferedReader que nós oferece o método de leitura readLine()
        BufferedReader lerArquivo = new BufferedReader(lerCaminhoDoTexto);


        /* Fazemos um loop linha a linha do arquivo enquanto ele seja diferente de null
           o método readLine() devolve a linha na posição do loop para a variavel linha */
        while (lerArquivo.ready()) {
            String texto = lerArquivo.readLine();
            String textoSplit [] = texto.split(";");

            for(int posicao = 0; posicao < 4; posicao++){
                 dadosAluno.aluno.add(textoSplit[posicao]);
                 System.out.print(textoSplit[1]);
            }

            // for(String posicao : dadosAluno)
        }
        lerArquivo.close();

    } catch (IOException e) {
        System.out.println("Arquivo não encontrado");

    }

ESTE É A CLASSE ALUNO: import java.util.ArrayList;

public class Aluno { ArrayList aluno = new ArrayList ();

Entendi a sua dúvida, mas ainda não sou tão bom em Java como pensava que fosse. Estou sem idéias. Faz o seguinte como esse post foi marcado como solucionado ele vai passar batido na hora dos outros usuários forem buscar tópicos para resolver.

Abre um novo post e põe todas as informações que perguntei e você respondeu nele. Assim o pessoal vai ver que tá sem solução/resposta, vai entender o problema pois tá tudo mastigado e vai pegar pra resolver.

eu consegui resolver o problema, mais agradeço muito só de querer me ajudar, muito obrigado! eu tenho outro problema agora, este vou postar no fórum de novo