2013-06-11 42 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()); 

Mã này chuyển đổi Java Object-InputStream và làm thế nào tôi có thể chuyển đổi InputStream một Object? Tôi cần phải chuyển đổi Object thành InputStream sau đó tôi chuyển nó và tôi muốn lấy lại số Object của mình.làm thế nào để chuyển đổi một input stream đến một đối tượng java

+2

ObjectInputStream dường như thực sự rõ ràng. – Gimby

Trả lời

13

Trong try khối bạn nên viết:

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

ObjectInputStream được khởi tạo với một dòng, ví dụ BufferedInputStream hoặc luồng đầu vào của bạn is.

+0

ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream (baos); oos.writeObject (reg_be); oos.flush(); oos.close(); InputStream là = new ByteArrayInputStream (baos.toByteArray()); mã này hiển thị ngoại lệ java.io.NotSerializableException: tại sao? – sabarirajan

+0

Vì lớp của đối tượng ('reg_be') bạn đang sắp xếp/deserializing phải thực hiện giao diện' Serializable'. – darijan

+0

cảm ơn bạn đã trả lời. ok tôi sẽ serialize obj của tôi. – 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 là = new ByteArrayInputStream (baos.toByteArray()); mã này hiển thị ngoại lệ java.io.NotSerializableException: tại sao? – sabarirajan

+0

Bởi vì lớp học của bạn không 'thực hiện Serializable'. –

0

Hãy thử như sau

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 là = new ByteArrayInputStream (baos.toByteArray()); mã này hiển thị ngoại lệ java.io.NotSerializableException: tại sao? – sabarirajan

+0

Tại sao đăng một câu trả lời hoàn toàn giống như hai câu trước? – darijan

+0

Lớp học của bạn có triển khai Serializable không? Nó nên hoặc nếu không bạn sẽ nhận được ngoại lệ đó. Lớp có đối tượng bạn đang chuyển trong luồng I/O của bạn. –

Các vấn đề liên quan