Leitura de arquivo csv

2 respostas
25cent

Bom dia galera.
Estou tentando faser um codigo pra ler um arquivo .csv e jogar seu conteudo em um ArrayList de vetores.
O arquivo tem 4 colunas sendo que a coluna 4 tem o nome, quando separa por ';' quer diser pra preencher uma posicao do vetor
e quando é '\n' é pra jogar o vetor no Array.
Mais ele ta jogando em todas as posicoes do array o ultimo vetor
Alguem pode me ajudar?

Segue parte do codigo:

public static void InsereItem(){
            
            try{
                ArrayList <String[]> Clientes = new ArrayList <String[]>();
                Scanner leia = new Scanner(System.in);
                FileReader fr = new FileReader("c:/Comanda/Clientes.csv");
                File produtos = new File ("c:/Comanda/Produtos.csv");
                FileWriter fw = new FileWriter (produtos,true);
                String busca = "";
                    if(produtos.exists()){
                        produtos.createNewFile();
                    }
              
                int n = fr.read();
                String txt = "";
                String [] vet = new String [4];
                int i = 0;
                
                while (n != -1){
                        
                        n = fr.read();
			char letra = (char)n;
			txt = txt + letra;
                        
                            if (letra == ';'){
				vet[i] = txt;
                                i  = i + 1;
                                txt = "";
                            }
                            if (letra == '\n'){
                               vet[i] = txt; 
                               Clientes.add(vet); 
                               i = 0;
                               System.out.println(txt);
                               txt = "";
                            }
		  }
                
                fr.close();
      
                         System.out.println (Clientes.get(0)[3]);
                         System.out.println (Clientes.get(1)[3]);
                         System.out.println (Clientes.get(2)[3]);
                         System.out.println (Clientes.get(3)[3]);
                
            }catch (Exception ex){
                System.out.println ("");
                System.out.println ("   Ocorreu o seguinte erro : "+ex);    
                System.out.println ("");
            }
        }

2 Respostas

Rodrigo_Sasaki

leia isso aqui e arrume seu post por favor

jaboot

25cent ,

Existe uma biblioteca chamada StringUtils. Dá um split por ; no seu código e tenha todas as posições do array preenchidas, sem problemas de null.

Abraços

Criado 7 de dezembro de 2011
Ultima resposta 7 de dez. de 2011
Respostas 2
Participantes 3