2016-11-29 9 views
-2

お返事ありがとうございます。 オブジェクトのArrayListをファイルに保存しようとしていますが、IOExeptionは引き続き取得しています。 コード:オブジェクトのArrayListを持つwriteObjectのObjectOutputStream ioexception

public static final String FILE_PATH=""; // is set to blank for tests. It DOES create a file. 

public static void saveToFileCl(ArrayList<cliente> al) { 
    if (al != null) { 
     try { 
      FileOutputStream file = new FileOutputStream(FILE_PATH+"cliente.dat"); 
      ObjectOutputStream outStream = new ObjectOutputStream(file); 
      outStream.writeInt(cliente.getAuto_inc()); // works fine 
      outStream.writeObject(new Date()); // works fine - not needed just for testing! 
      outStream.writeObject(al); // exception !!!! 
      outStream.flush(); 
      outStream.close(); 
     } catch (IOException e) {System.out.println("Erro a gravar ficheiro de clientes!\n"+e.getCause());} 
      catch (Exception e) {System.out.println("Erro a desconhecido ao gravar ficheiro de clientes!\n"+e.getMessage());} 
    }  
} 

例外はどうして私に伝えられますか?

+2

完全なスタックトレースを追加してください – Jens

+0

完全なエラースタックトレースをお願いします –

+0

'cliente'はシリアル化可能ですか?何かスタックトレースがまったく同じことを言ってくれます。 – AxelH

答えて

0

インスタンスをOutputStream.writeObject(Object)でOutputStreamに書き込むには、インスタンスをSerializableにする必要があります。これは、インスタンスがバイト形式で格納できることを通知するインタフェース(java.io.Serializable)です。

は、あなただけのクラス実装への方法はありません

class MyClass implements java.io.Serializable { ... } 

にインターフェイスを追加する必要があり、ちょうどこのラインで十分です。

関連する問題