2013-06-11 17 views
5
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(baos); 
oos.writeObject(reg_be); 
oos.flush(); 
oos.close(); 

InputStream is = new ByteArrayInputStream(baos.toByteArray()); 

Ten kod konwersji Java Object do InputStream iw jaki sposób mogę przekonwertować InputStream do Object? Muszę przekonwertować mój Object na InputStream, a następnie przekazać go i chcę odzyskać mój Object.jak konwertować strumień wejściowy do obiektu java

+2

ObjectInputStream wydaje się naprawdę oczywiste. – Gimby

Odpowiedz

13

W try bloku należy napisać:

ObjectInputStream ois = new ObjectInputStream(is); 
Object object = ois.readObject(); 

ObjectInputStream jest inicjowana z innego strumienia, na przykład BufferedInputStream lub Twój strumień wejściowy is.

+0

ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream (baos); oos.writeObject (reg_be); oos.flush(); oos.close(); InputStream is = new ByteArrayInputStream (baos.toByteArray()); ten kod pokazuje wyjątek java.io.NotSerializableException: dlaczego? – sabarirajan

+0

Ponieważ klasa obiektu ('reg_be') serializujesz/deserializujesz musi implementować interfejs' Serializable'. – darijan

+0

dziękuję za odpowiedź. ok i serializuje mój obiekt. – sabarirajan

2
ObjectInputStream ois = new ObjectInputStream(is); 
Object o - ois.readObject(); 
+0

ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream (baos); oos.writeObject (reg_be); oos.flush(); oos.close(); InputStream is = new ByteArrayInputStream (baos.toByteArray()); ten kod pokazuje wyjątek java.io.NotSerializableException: dlaczego? – sabarirajan

+0

Ponieważ Twoja klasa nie "implementuje Serializable". –

0

Wypróbuj następujące

ObjectInputStream ois = new ObjectInputStream(is); 
Object obj = ois .readObject(); 
+0

ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream (baos); oos.writeObject (reg_be); oos.flush(); oos.close(); InputStream is = new ByteArrayInputStream (baos.toByteArray()); ten kod pokazuje wyjątek java.io.NotSerializableException: dlaczego? – sabarirajan

+0

Dlaczego publikować zupełnie taką samą odpowiedź jak poprzednie dwa? – darijan

+0

Czy Twoja klasa implementuje Serializable? To powinno, albo dostaniesz ten wyjątek. Klasa, której obiekt przenosisz w swoich strumieniach I/O. –

Powiązane problemy