2017-02-26 6 views
-1

私はjavaを初めて使いました。これは私の学習コードです。私は問題がある。私は、ファイルにJava ObjectInputStream戻るJavaクラス

try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"))) { 
     for (Person person : persons) { 
      oos.writeObject(person); 
     } 
    } catch (IOException ex) { 
     Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex); 
    } 

の人物の配列を送ってきたし、今私は戻って新しい人クラスの配列にちょうど2つのトップ者を取得したい(愚かな、しかし、私はちょうどファイルを操作する方法を学びたい)ドン実際にどのように知っている。私はこの

try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("person.ser"))) 
    { 
     Person[] humans = new Person[2]; 
     humans[0] = new (Person) ois.readObject(); 
     humans[1] = new (Person) ois.readObject(); 

    } 
    catch (IOException ex) { 
     Logger.getLogger(JavaApplication1.class.getName()).log(Level.SEVERE, null, ex); 
    } 

ような何かをしようとしたが、それは仕事をdoesntの 。助けてもらえますか?私はちょっとした間違いがあると思う。

+0

humans[0] = new (Person) ois.readObject(); humans[1] = new (Person) ois.readObject(); 

を交換し、正確、 "それは動作しません" を定義します。何が起こると思いますか、代わりに何が起こりますか?例外をスローした場合は、スタックトレースを送信します。コンパイルエラーがある場合は、完全で正確なエラーメッセージを投稿してください。ヒント: 'new'はコンストラクタの呼び出しに使用されます。 –

+0

私はそれをコンパイルすることはできません、それは期待 – J1rka

+0

ああ、私はそれを得る。それは今 "新しい"なしで動作します。私は何とかファイルから挿入する前にオブジェクトを作成しなければならないと思った。 – J1rka

答えて

0

humans[0] = (Person) ois.readObject(); 
humans[1] = (Person) ois.readObject();