Boas. Gostaria que alguém me ajudasse nesta situação: estou a construir uma classe que contém dois métodos. Esses métodos fazem o seguinte: escrever num ficheiro de objectos todos os objectos contidos num Vector<Object> (passado como parâmetro); ler do ficheiro de objectos todos os objectos e colocá-los num Vector<Object>. A parte de escrita funciona bem, mas a leitura está a dar uma excepção na seguinte linha de código "vect = (Vector<Objectos>)obj.readObject();" O que estou a fazer de errado?
Aqui envio o código dos métodos de escrita e leitura:
//Escrita
//Leitura
Aqui envio o código dos métodos de escrita e leitura:
//Escrita
Código:synchronized static void FileWrite(String fileName, Vector<Objectos> vect){ //ObjectInput input = null; ObjectOutput output = null; /* //lê o ficheiro para poder escrever sem incompatibilidade de dados try{ final InputStream file = new FileInputStream(fileName); final InputStream buffer = new BufferedInputStream(file); input = new ObjectInputStream (buffer); }catch(final IOException e){ System.out.println("Cannot perform input."); } */ //escreve do Vector de objectos para um ficheiro try{ final OutputStream file = new FileOutputStream(fileName); final OutputStream buffer = new BufferedOutputStream(file); output = new ObjectOutputStream(buffer); if(!vect.isEmpty()){ for(int i = 0; i < vect.size(); i++){ output.writeObject(vect.elementAt(i)); } } } catch(final IOException e){ System.out.println("Cannot perform output."); } finally{ try{ if(output != null){ //flush and close "output" and its underlying streams output.close(); } } catch(final IOException ex ){ System.out.println("Cannot close output stream."); } } }
//Leitura
Código:synchronized static Vector<Objectos> FileRead(String fileName){ Vector<Objectos> vect = new Vector<Objectos>(); try{ FileInputStream file = new FileInputStream(fileName); ObjectInputStream obj = new ObjectInputStream(file); try{ vect = (Vector<Objectos>)obj.readObject(); return vect; }catch(ClassNotFoundException e){ System.out.print("Erro!"); return new Vector<Objectos>(); } }catch(IOException e){ System.out.print("Erro na leitura do ficheiro."); return new Vector<Objectos>(); } }