Tự Học Java | Lớp ObjectOutputStream Trong Java »
🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥
Trong hướng dẫn này, chúng ta sẽ tìm hiểu về ObjectOutputStream trong Java và các phương thức của nó với sự trợ giúp của các ví dụ.
lớp ObjectOutputStream của gói java.io có thể được sử dụng để viết các đối tượng có thể được đọc bởi ObjectInputStream.
Nó mở rộng lớp OutputStream trừu tượng.

1. Hoạt động của ObjectOutputStream
Về cơ bản, ObjectOutputStream mã hóa các đối tượng Java bằng cách sử dụng tên lớp và các giá trị đối tượng. Và do đó tạo ra các luồng tương ứng. Quá trình này được gọi là tuần tự hóa.
Các luồng chuyển đổi đó có thể được lưu trữ trong các tệp và có thể được chuyển giữa các mạng.
Lưu ý : Lớp ObjectOutputStream chỉ ghi những đối tượng thực thi Serializable interface. Điều này là do các đối tượng cần được tuần tự hóa trong khi ghi vào luồng
2. Tạo một ObjectOutputStream
Để tạo luồng đầu ra đối tượng, trước tiên chúng ta phải nhập gói java.io.ObjectOutputStream. Khi chúng ta nhập gói, đây là cách chúng ta có thể tạo luồng đầu ra.
// Creates a FileOutputStream where objects from ObjectOutputStream are written FileOutputStream fileStream = new FileOutputStream(String file); // Creates the ObjectOutputStream ObjectOutputStream objStream = new ObjectOutputStream(fileStream);Trong ví dụ trên, chúng tôi đã tạo một luồng đầu ra đối tượng có tên objStream được liên kết với luồng đầu ra tệp có tên tập hồ sơ.
3. Các phương thức của ObjectOutputStream
lớp ObjectOutputStream cung cấp triển khai cho các phương thức khác nhau trình bày trong lớp OutputStream.
3.1 phương thức viết
- write() – ghi một byte dữ liệu vào luồng đầu ra
- writeBoolean() – ghi dữ liệu ở dạng boolean
- writeChar() – ghi dữ liệu ở dạng ký tự
- writeInt() – ghi dữ liệu ở dạng số nguyên
- writeObject() – ghi đối tượng vào luồng đầu ra
3.2 Ví dụ 1: Java ObjectOutputStream
Hãy xem cách chúng ta có thể sử dụng ObjectOutputStream để lưu trữ các đối tượng trong tệp và ObjectInputStream đọc các đối tượng đó từ tệp
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; class Main { public static void main(String[] args) { int data1 = 5; String data2 = "This is programiz"; try { FileOutputStream file = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream output = new ObjectOutputStream(file); // writes objects to output stream output.writeInt(data1); output.writeObject(data2); // Reads data using the ObjectInputStream FileInputStream fileStream = new FileInputStream("file.txt"); ObjectInputStream objStream = new ObjectInputStream(fileStream); System.out.println("Integer data :" + objStream.readInt()); System.out.println("String data: " + objStream.readObject()); output.close(); objStream.close(); } catch (Exception e) { e.getStackTrace(); } } }Đầu ra
Integer data: 5 String data: This is programizTrong ví dụ trên, chúng ta đã sử dụng phương thức readInt() và phương thức readObject()để đọc một dữ liệu số nguyên và dữ liệu đối tượng từ các tệp.
Ở đây, chúng tôi đã sử dụng ObjectOutputStream để ghi dữ liệu vào file. Sau đó, chúng ta đọc dữ liệu từ tệp bằng cách sử dụng ObjectInputStream.
3.3 Ví dụ 2: Java ObjectOutputStream
Hãy lấy một ví dụ khác,
/* Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam @author cafedevn Contact: [email protected] Fanpage: https://www.facebook.com/cafedevn Group: https://www.facebook.com/groups/cafedev.vn/ Instagram: https://instagram.com/cafedevn Twitter: https://twitter.com/CafedeVn Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ Pinterest: https://www.pinterest.com/cafedevvn/ YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/ */ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable; class Dog implements Serializable { String name; String breed; public Dog(String name, String breed) { this.name = name; this.breed = breed; } } class Main { public static void main(String[] args) { // Creates an object of Dog class Dog dog1 = new Dog("Tyson", "Labrador"); try { FileOutputStream fileOut = new FileOutputStream("file.txt"); // Creates an ObjectOutputStream ObjectOutputStream objOut = new ObjectOutputStream(fileOut); // Writes objects to the output stream objOut.writeObject(dog1); // Reads the object FileInputStream fileIn = new FileInputStream("file.txt"); ObjectInputStream objIn = new ObjectInputStream(fileIn); // Reads the objects Dog newDog = (Dog) objIn.readObject(); System.out.println("Dog Name: " + newDog.name); System.out.println("Dog Breed: " + newDog.breed); objOut.close(); objIn.close(); } catch (Exception e) { e.getStackTrace(); } } }Đầu ra
Dog Name: Tyson Dog Breed: LabradorTrong ví dụ trên, chúng tôi đã tạo
- ObjectOutputStream được đặt tên objOut sử dụng FileOutputStream tên fileOut
- ObjectInputStream được đặt tên sử dụng objIn FileInputStream tên trong tập tin.
- Một đối tượng dog1 sau đó lớp Chó.
Ở đây, chúng ta đã sử dụng luồng xuất đối tượng để ghi đối tượng vào tệp. Và, luồng đầu vào đối tượng để đọc đối tượng từ tệp.
Lưu ý :lớp Chó thực hiện Serializable interface. Đó là bởi vì các ObjectOutputStream đối tượng ghi duy nhất có thể được tuần tự hóa đến luồng đầu ra.
4. Các phương thức khác của ObjectOutputStream
| Phương thức | Mô tả |
| flush() | xóa tất cả dữ liệu khỏi luồng đầu ra |
| drain() | đặt tất cả dữ liệu được lưu trong bộ đệm vào luồng đầu ra |
| close() | đóng luồng đầu ra |
Để tìm hiểu thêm, hãy truy cập Java ObjectOutputStream (tài liệu Java chính thức) .
Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.
Nguồn và Tài liệu tiếng anh tham khảo:
- oracle
Tài liệu từ cafedev:
- Full series tự học Java từ cơ bản tới nâng cao tại đây nha.
- Ebook về Java tại đây.
- Các nguồn kiến thức MIỄN PHÍ VÔ GIÁ từ cafedev tại đây
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
- Group Facebook
- Fanpage
- Youtube
- Trang chủ
Chào thân ái và quyết thắng!
Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Từ khóa » Ghi đối Tượng Ra File Trong Java
-
Ghi đối Tượng (Object) Vào File Trong Java - Ngoc Khuong Blog
-
[Java] Đọc Ghi Theo Object Trong Java - Read Write Object In Java
-
Đọc File Theo Object Trong Java - Deft Blog
-
Làm Việc Với File Trong Java
-
Ghi File Trong Java Với Lớp FileWriter - Học Java Miễn Phí Hay Nhất
-
Đọc Ghi File Trong Java - Học Java Miễn Phí Hay Nhất - VietTuts
-
Cách đọc Ghi File Trong Java - Lập Trình Không Khó
-
Bài 14: Đọc Ghi File Theo Object Trong Java - Www.AndroidCoBan.Com
-
Java - Đọc Ghi Các đối Tượng Với ObjectOutputStream Và ... - YouTube
-
Đọc, Ghi đối Tượng Vào File Trong Java - Doan Luan's Blog
-
Cách Ghi Nối Thêm Nội Dung Vào File Trong Java - Freetuts
-
Cách Ghi File Trong Java - Freetuts
-
Object Serialization | Võ Văn Hải's Blog
-
Lớp FileReader Và FileWriter Trong Java - Góc Học IT