Galera, eu tenho uma lista numérica (1.txt, 2.txt, 3.txt, etc…) de objetos serializados que é variável. Num determinado momento eu preciso saber quantos objetos eu tenho, então eu fiz dessa forma achando que ao chegar no primeiro número inexistente o método recuperaVendedor retornaria null, mas na hora de usar o método ele dá erro…
Scanner scanner = new Scanner(System.in);
SerializadorVendedor serializador = new SerializadorVendedor();
Vendedor vendedor = new Vendedor();
int numDeVendedores;
for (int cont=1; ;cont++){
vendedor = serializador.recuperaVendedor (cont+".txt");
if (vendedor == null){
numDeVendedores = cont;
break;
}
}
Eu sei que o erro tá no método, só não sei consertar… Eu percebi que o método só retornaria o vendedor == null caso a String do nomeArquivo fosse null. Mas no caso a String não é null e sim correspondente a um objeto inexistente, pois não existe o objeto com aquele nome, e aí como eu faço pra não dar erro? Pra ele retornar o vendedor == null caso o objeto não exista???
//esse é o método da classe SerializadorVendedor
public Vendedor recuperaVendedor(String nomeArquivo)
throws IOException, ClassNotFoundException {
Vendedor vendedor = null;
if ( nomeArquivo != null ){
FileInputStream fis = new FileInputStream( nomeArquivo );
ObjectInputStream ois = new ObjectInputStream( fis );
vendedor = (Vendedor) ois.readObject();
ois.close();
}else{
return null;
}
return vendedor;
}