Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Lưu TreeSet vào file trong Java (Serialization)

TreeSet và Serializable

TreeSet implements Serializable, nên có thể ghi trực tiếp ra file bằng ObjectOutputStream.writeObject(). Cần đảm bảo các phần tử trong set cũng Serializable.

Ví dụ

import java.util.*;
import java.io.*;

public class TreeSetToFileExample {
    public static void main(String[] args) {
        try {
            String[] elements = {"Raja", "Jai", "Adithya", "Chaitanya"};
            // TreeSet tự động sắp xếp theo thứ tự tự nhiên (alphabet)
            Set<String> treeSet = new TreeSet<>(Arrays.asList(elements));

            try (FileOutputStream fos = new FileOutputStream("set.txt");
                 ObjectOutputStream oos = new ObjectOutputStream(fos)) {
                oos.writeObject(treeSet);
                System.out.println("Các phần tử TreeSet đã lưu vào file thành công");
            }
        } catch (Exception e) {
            System.out.println("Lỗi: " + e.getMessage());
        }
    }
}

Kết quả

Các phần tử TreeSet đã lưu vào file thành công

Đọc lại (deserialize)

try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("set.txt"))) {
    Set<String> restored = (Set<String>) ois.readObject();
    System.out.println("Đọc lại: " + restored); // [Adithya, Chaitanya, Jai, Raja] (sorted)
}

Lưu ý: TreeSet dùng Comparable hoặc Comparator để sắp xếp. Khi deserialize, thứ tự được khôi phục nhờ TreeSet nội bộ xây dựng lại cây.