คือ การแปลงออปเจคให้อยู่ในรูปของไบต์สตรีม (byte stream)
1. มีไว้เพื่อใช้ในการเก็บออปเจคไว้ในไฟล์ เพื่อเรียกอ่านและแปลงกลับ (deserialization) เป็นออปเจคในภายหลัง เช่น เราเซฟออปเจคที่เก็บข้อมูล application parameter บางตัวไว้ลงในไฟล์หลังจากโปรแกรมจบ เพื่อว่าในการรันโปรแกรมครั้งต่อไปจะได้อ่านพารามิเตอร์เหล่านั้นกลับเข้ามา วิธีนี้ไม่ค่อยเป็นที่นิยมนัก เนื่องจากมีทางเลือกอื่นๆ เช่น เก็บข้อมูลลงในฐานข้อมูล หรือ ใช้ System.Properties หรือใช้ XMLEncoder (ในจาวา 1.4 ขึ้นไป)
2. มีไว้สำหรับเป็นวิธีส่งออปเจคนั้นไปยังเครื่องอื่น เนื่องจากออปเจคถูกแปลงเป็นไบต์สตรีม จึงสามารถส่งออปเจคนั้นไปที่เครื่องอื่น (object distribution) ในกรณีผ่านเป็นพารามิเตอร์ในการ invoke ออปเจคข้ามเครื่อง (เช่นที่ใช้ใน RMI) หรือเป็นการ migrate object ไปรันที่เครื่องอื่น เป็นต้น
———
Stream มีโครงสร้างพื้นฐานเป็นสายของ Byte ที่วิ่งมาเรื่อย ๆ เหมือนกระแสน้ำ นั่นหมายความว่าคุณสามารถเก็บข้อมูลจาก Stream หรือเขียนอะไรลงไปใน Stream คุณต้องทำงานเป็น Byte เสมอ คือก้อนข้อมูลขนาด 0-255 [...]
