首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java中使用ObjectInputStream從.dat文件讀取對象存入Vector

     編輯:程式設計綜合問答

.dat文件通常存儲Java對象序列化數據。讀取並存入Vector(或ArrayList)的標準流程:

完整代碼示例

Vector<Student> studentVector = new Vector<>();
try (FileInputStream fis = new FileInputStream("stu.dat");
     ObjectInputStream ois = new ObjectInputStream(fis)) {
    
    while (true) {
        try {
            Student stu = (Student) ois.readObject();
            studentVector.add(stu);
        } catch (EOFException e) {
            break; // 讀取完畢
        }
    }
} catch (IOException | ClassNotFoundException e) {
    e.printStackTrace();
}

// 現在 studentVector 包含所有學生對象
for (Student s : studentVector) {
    System.out.println(s.getName() + " " + s.getId());
}

關鍵點

  • 使用 try-with-resources 自動關閉流(Java 7+)。
  • 捕獲 EOFException 作為循環結束標誌,因為 readObject() 讀到文件末尾會拋出該異常。
  • 確保 Student 類實現了 Serializable 接口,且 serialVersionUID 與寫入時一致。
  • Vector是線程安全的舊集合,新代碼推薦用 ArrayList 並自行控制同步。

參考教程:Java對象序列化與反序列化詳解

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved