Tôi đang sử dụng ObjectOutputStream để tạo một tệp các đối tượng được tuần tự hóa. Sau đó tôi sử dụng một ObjectInputStream với phương thức readObject() để lấy các đối tượng ra khỏi tệp.Lỗi ObjectInputStream
Lần đầu tiên nó hoạt động tốt. Có nghĩa là nếu tập tin không tồn tại và tôi mở nó sau đó nối thêm bất kỳ số lượng các đối tượng, tôi có thể mở đối tượng ObjectInputStream và truy cập tất cả các đối tượng.
Tuy nhiên, nếu sau đó tôi mở cùng một tệp (sử dụng tùy chọn chắp thêm) và thêm đối tượng khác, đối tượng ObjectInputStream nhận được lỗi java.io.StreamCorruptedException: "invalid type code: AC", nơi các đối tượng mới sẽ bắt đầu.
Có ai khác chạy vào điều này không? Tôi thậm chí đã quay trở lại một số ví dụ sách giáo khoa cơ bản từ cuốn sách Deitel và vẫn nhận được cùng một lỗi.
Chỉnh sửa: Tôi đã tìm thấy điều này - Bạn không thể nối thêm vào cuối luồng đã được tuần tự hóa sau khi đã đóng và mở lại ở chế độ nối thêm. Các ghi sẽ xuất hiện để làm việc, nhưng khi bạn đi đọc tệp sau này, bạn sẽ nhận được một java.io.StreamCorruptedException. tại "http://mindprod.com/jgloss/gotchas.html#SERIALIZATION"
Không có mối tương quan trực tiếp giữa luồng đầu ra và luồng đầu vào tại đây. Họ thậm chí có thể không được chạy trên cùng một ngày hoặc máy trạm. Một trong những lưu thông tin vào một tập tin mà tại một số điểm sau đó một quá trình khác phải mở và đọc. –