Giả sử tôi có một số OutputStream
(và không phải làObjectOutputStream
). Có thể gửi một đối tượng được tuần tự hóa bằng cách sử dụng phương thức ghi không? Cảm ơn!Đối tượng tuần tự với đầu ra
Trả lời
đây là những gì bạn làm để serialize đối tượng
new ObjectOutputStream(outputStream).writeObject(obj);
nếu bạn muốn kiểm soát các byte [] ra
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(buffer);
oos.writeObject(obj);
oos.close();
byte[] rawData = buffer.toByteArray();
ps. thx cho các ý kiến dưới đây, chỉnh sửa theo đó
Bạn cũng nên thêm một số văn bản mô tả để nó không chỉ là một câu trả lời đúng mà còn là một câu trả lời đúng. –
Bạn cần 'writeObject()', không phải 'write()'. Và một lời gọi đến 'flush()' sẽ hữu ích. –
Bạn phải sử dụng lớp ObjectOutputStream và các phương pháp của nó cho các đối tượng *serialize*
. Trong thực tế, ObjectOutputStream
là một phân lớp con của java.io.OutputStream
(Đây là một lớp siêu trừu tượng của các luồng định hướng byte). Hãy nhìn vào một bài viết về Java Serialization API.
EDIT: Bạn có thể sử dụng XMLEncoder
(từ Doc: Lớp XMLEncoder là một lựa chọn bổ sung cho ObjectOutputStream và có thể sử dụng để tạo ra một đại diện văn bản của một JavaBean giống như cách mà ObjectOutputStream có thể được sử dụng để tạo biểu diễn nhị phân của đối tượng có thể tuần tự)
có nhiều cách để tuần tự hóa một đối tượng; bạn không phải sử dụng ObjectOutputStream – Hachi
Bạn có thể sử dụng ObjectOutputStream để 'nắm bắt' dữ liệu đối tượng trong một mảng byte và gửi nó đến OutputStream.
String s = "test";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(s);
byte[] byteArray = baos.toByteArray();
for (byte b : byteArray) {
System.out.print((char) b);
}
Một tùy chọn khác không chung chung là sắp xếp thứ tự đối tượng trong biểu diễn chuỗi, ví dụ: CSV
Đây là tầm thường: bạn chỉ có thể quấn gốc OutputStream
của bạn trong một mới ObjectOutputStream
, và sau đó sử dụng phương pháp chuyên ngành của ObjectOutputStream
:
OutputStream myOriginalOutputStream = ...;
ObjectOutputStream oos = new ObjectOutputStream(myOriginalOutputStream);
oos.writeObject(new MyObject());
oos.flush();
oos.close();
Bên trong, ObjectOutputStream
sẽ gọi write()
phương pháp OutputStream
tiềm ẩn 's.
- 1. Đối tượng tuần tự hóa thành XmlDocument
- 2. Tuần tự hóa WCF với kế thừa đối tượng?
- 3. Tìm serialVersionUID của đối tượng được tuần tự
- 4. Tuần tự hóa đối tượng dịch vụ WCF
- 5. Tuần tự hóa Javascript của DateTime trong asp.net không đưa ra một đối tượng ngày javascript?
- 6. Có thể tuần tự hóa cùng một đối tượng tạo ra các luồng khác nhau không?
- 7. StackOverflowError khi tuần tự hóa một đối tượng trong Java
- 8. Đại diện của Java đối tượng được tuần tự hóa
- 9. Gửi và nhận đối tượng tuần tự trên UDP
- 10. tuần tự hóa các đối tượng python thành XML
- 11. Thực hiện tuần tự hóa đối tượng thực tế?
- 12. BOOST_SERIALIZATION_NVP làm gì khi tuần tự hóa đối tượng?
- 13. Duy trì các mối quan hệ đối tượng với việc tuần tự hóa PHP
- 14. python: tuần tự hóa từ điển thành đầu ra html đơn giản
- 15. Có thể tự động tuần tự hóa đối tượng C++ không?
- 16. Nối tiếp một đối tượng có lớp cha không tự tuần tự
- 17. Capture đầu ra cuối cùng là một đối tượng R
- 18. Thi đua đối tượng mặc định # kiểm tra đầu ra?
- 19. XML Serialize danh sách chung các đối tượng có thể tuần tự với lớp cơ sở trừu tượng
- 20. Làm thế nào tôi có thể tìm ra serialVersionUID của một đối tượng Java được tuần tự hóa?
- 21. Nhị phân (De) Tuần tự hóa một dòng đối tượng thành 1 tệp
- 22. Jackson :: thêm các trường bổ sung vào một đối tượng trong tuần tự hóa
- 23. lỗi với tuần tự hóa với protobuf
- 24. Trình tự đầu ra
- 25. ĐỐI TƯỢNG SQL CHO cột đầu ra tên XML
- 26. Ổ cắm/tuần tự Java, đối tượng sẽ không cập nhật
- 27. Sao chép các thuộc tính đối tượng: phản chiếu hoặc tuần tự hóa - nhanh hơn?
- 28. Làm cách nào để tuần tự hóa đối tượng System.Windows.Media.Color thành chuỗi sRGB?
- 29. Serializing đối tượng có chứa giá trị đối tượng tuần hoàn
- 30. Bỏ qua hướng dẫn xử lý XML khi tuần tự hóa một đối tượng
bạn có thể ghi bất kỳ dữ liệu nào bằng OutputStream. đơn giản nhất là tạo một byte [] của đối tượng của bạn – Hachi