01/10/2018, 15:52

Java: Đọc, ghi File Object

Chào các anh chị, em đang học về Java Core và làm bài tập về Đọc,Ghi File và OOP trong Java.Em có một bài tập mà hiện em đang bí , các anh chị có cách giải quyết hay hướng dẫn thì chỉ em với.

  1. Storing information:
    a. Fresher: code, full name, id number, department, university/college name, all of quiz’s point, mock project’s point, trainer’s comment
    b. Quiz’s point: quiz, point
    c. Quiz: code, quiz’s name, content
    d. Department: code, name, short name

Thay vì sử dụng SQL Server để lưu trữ CSDL thì em muốn lưu CSDL vào một file.txt… Mình sẽ làm các thao tác CRED y như bình thường nhưng sử dụng database lưu trên file text… Em muốn hỏi là nhìn mô tả bài toán thì nếu lưu trên SQL server thì mình sẽ tạo 4 bảng và sẽ có các mối quan hệ giửa các bảng… Vậy nếu làm với file thì sao ạ… Mình cũng sẽ lưu về 4 file text đúng không ạ… nhưng làm sao để các file có quan hệ với nhau (vd: Trong Fresher có trường department thì nó sẽ có quan hệ với Department)…

Em không biết diễn tả sao cho đúng… Mong các anh chị giúp em với ạ

Trung Kien viết 18:00 ngày 01/10/2018

Theo quan điểm của anh, em có thể lưu vào file txt nhưng theo kiểu xml hoặc json để dễ thao tác với dữ liệu sau này. Còn việc liên hệ giữa các bảng thì theo như anh hiểu nó sẽ như sau:

  • Các bảng:
  • Fresher -> khóa chính id number
  • Quiz -> khóa chính code
  • Quiz’s point -> khóa chính quiz, trường này anh nghĩ nó tương đương code trong bảng Quiz ở trên
  • Department -> khóa chính code
  • Fresher_Quiz -> bảng phụ để liên kết giữa trường idnumber trong Fresher và trường code trong quiz
  • Nếu làm đơn giản hơn thì có thể xóa đi bảng là Quiz’s point và đưa vào 1 trường nữa nằm trong bảng Quiz là point để xác định điểm => nếu làm thế chỉ có 4 bảng

Về liên kết giữa các bảng:

Fresher <-> department -> thông qua code nằm trong fresher

Quiz’s point <-> Quiz -> thông qua trường code nằm trong Quiz có thể nó ngang bằng với trường quiz nằm trong Quiz’s point

Fresher <-> Quiz -> thông qua bảng phụ Fresher_Quiz

Nguyễn Đạt viết 17:58 ngày 01/10/2018

Dạ em cám ơn anh nhiều ạ… giờ thì em không biết code sao để các file.txt liên kết với nhau nữa. Mọi người có ai có tài liệu hay hướng dẫn để đọc,ghi một Object List theo dạng file không ạ… Em đang dùm ObjectOutputStream để ghi dữ liệu vào file Fresher.txt nhưng mà khi mà đọc dữ liệu ra thì nó chỉ hiện thị Object mình vừa mới nhập,còn các Object mình tạo từ trước thì không có… Em đang muốn làm là thêm fresher vào danh sách…nhưng mỗi lần thêm thì nó chỉ hiện fresher mình mới thêm thôi

Đây là đoạn code của em, em không biết là làm vậy có đúng yêu cầu của đề không nữa

Trung Kien viết 17:55 ngày 01/10/2018

Theo như code trên của em thì anh thấy em nên sử dụng mảng array để đọc các object từ file txt vào trước nếu file txt tồn tại, sau đó add thêm 1 object vào mảng array này và ghi toàn bộ mảng array ra file txt.

Còn về việc các file txt liên kết, thì cái này chủ yếu là do cấu trúc dữ liệu em ghi ra txt em sắp xếp theo dạng nào, em ghi ra kiểu gì thì em phải đọc trở về kiểu đấy. Nếu dùng writeObject thì hơi mệt, anh nghĩ em nên tham khảo ghi dữ liệu theo cấu trúc dữ liệu json, nó dễ dàng trong thao tác hơn, cũng có nhiều library để sử dụng.

Bài liên quan
0