Inserir elementos da lista em um vetor [RESOLVIDO]
9 respostas
vanessa.tenorio
Bom dia!
Pessoal, tenho uma lista preenchida por seis números, como faço para inserir estes elementos da lista em um vetor?
Minhas tentativas não foram bem sucedidas.
publicstaticListabrirDoDisco(){// Abrindo o arquivo usando um arrayList, imprimindo o arquivo na tela Stringlinha;Listlista1=newArrayList();int[]vetorSenha=newint[6];try{Filefile=newFile("Senha.bin");BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(file)));while(br.ready()){linha=br.readLine();lista.add(linha);lista1.add(linha);}br.close();}catch(FileNotFoundExceptione){System.out.println("Erro: "+e.getMessage());}catch(IOExceptione){System.out.println("Erro: "+e.getMessage());}for(inti=0;i<lista.size();i++){System.out.println(lista.get(i));// vetorSenha[i] = (Integer) (lista.get(i)); // ERRO}//Retorna uma listareturnlista1;}
Estava usando variável ‘lista’ onde seria ‘lista1’.
vanessa.tenorio
asousaj, muito obrigada pela observação, porém, mesmo alterando a variável, o erro se mantém: Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
Penso que pode estar nos valores lidos.
Estou gravando da seguinte forma:
publicstaticvoidgravarEmDisco(int[]vet){try{Filefile=newFile("Senha.bin");BufferedWriterbuffer=newBufferedWriter(newFileWriter(file));for(inti=0;i<vet.length;i++){buffer.write(vet[i]+"");buffer.newLine();}buffer.close();System.out.println("Arquivo senha gravado com sucesso");}catch(IOExceptione){System.out.println("Falha na gravação do arquivo "+e);}}
Ruttmann
Posta todo o stacktrace do erro que você recebe.
Você tem certeza que nesse arquivo que estás lendo só tem números? Se tiver letras dá erro de Cast.
E mais, dependendo do tamanho da sequência de números que você estiver lendo vai dar erro de Cast também.
Observe que a constante MAX_VALUE da classe Integer retorna este valor: [telefone removido].
Ou seja, se você tiver uma sequência como 546145689418989, obviamente vai ter erro de Cast.
Aí você pode usar outra classe, como por exemplo, BigInteger.
vanessa.tenorio
Ruttmann, conforme me solicitou, segue todo o erro:
Apresenta que o método Integer.parseInt é aplicado a uma String, e o que tenho é um objeto.
Mesmo assim, muito obrigada pela colaboração.
Mas ali na linha 12 do primeiro trecho de código que você postou, você está adicionando a linha lida do arquivo a uma variável String, que em seguida(linha 13) é adicionada ao seu ArrayList.
Uma String é um objeto.
Outra coisa que observei é que você não está usando Generics nesse ArrayList. Experimente adicionar o Generics na instanciação do ArrayList pra ver o que acontece…
vanessa.tenorio
Ruttmann e asousaj, muitíssimo obrigada pela ajuda!
Problema resolvido com a alteração da declaração apontada por asousaj: