Gente fui serializar um ArrayLista,e deu erro(para carregar o aquivo e fazer um pesquisa).
é um arrylist de de objetos de uma classe que eu mesmo criei,mas essa classe implementa serialização;
vamo lá:
public class cliente implements java.io.Serializable { String nome,rua,bairro,cidade,telefone,cpf,numero;
OBS:[b]Meus JButtons, B1 e B2 ativam respectivamente ,salvar e pesquisar cliente.
FileOutputStream saiarq=new FileOutputStream("//home//gugu//arq_aki2.txt");
ObjectOutputStream saiobj=new ObjectOutputStream(saiarq);
FileInputStream cararq=new FileInputStream("//home//gugu//arq_aki2.txt");
ObjectInputStream carobj=new ObjectInputStream(cararq);
cliente c;
ArrayList<cliente> listacliente=new ArrayList(20000);
String pesq;
public void actionPerformed(ActionEvent e)
{
if (e.getSource()==B1)
{
c=new cliente();
c.setnome(T1.getText());
c.setCpf(T2.getText());
c.setTelefone(T3.getText());
c.setRua(T5.getText());
c.setNumero(T6.getText());
c.setBairro(T7.getText());
c.setCidade(T8.getText());
listacliente.add(i,c);
i++;
JOptionPane.showMessageDialog( null, "Cliente cadastrado!!!" , "Aki Lanches", JOptionPane.PLAIN_MESSAGE);
try {
saiobj.writeObject(listacliente);
} catch (IOException ex) {
JOptionPane.showMessageDialog( null, "Erro ao gravar arquivo!!!" , "Aki Lanches", JOptionPane.PLAIN_MESSAGE);
}
try {
saiobj.close();
} catch (IOException ex) {
Logger.getLogger(clienteinter.class.getName()).log(Level.SEVERE, null, ex);
}
}
T1.setText("");
T2.setText("");
T3.setText("");
T5.setText("");
T6.setText("");
T7.setText("");
T8.setText("");
if (e.getSource()==B2){
int acha=0;
try {
listacliente = (ArrayList)carobj.readObject();
} catch (IOException ex) {
Logger.getLogger(clienteinter.class.getName()).log(Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(clienteinter.class.getName()).log(Level.SEVERE, null, ex);
}
pesq=JOptionPane.showInputDialog("Nome do cliente");
for(int j=0;j< listacliente.size();j++)
{
if(pesq.compareTo(listacliente.get(j).getnome())==0)
{
String n=listacliente.get(j).getnome();
JOptionPane.showMessageDialog( null, "Cliente encontrado! " +n, "Aki Lanches", JOptionPane.PLAIN_MESSAGE);
acha=1;
}
}
if(acha==0)
{
JOptionPane.showMessageDialog( null, "Cliente Inexistente " , "Aki Lanches", JOptionPane.PLAIN_MESSAGE);
}
}
try {
carobj.close();
} catch (IOException ex) {
Logger.getLogger(clienteinter.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
obrigado!