2012-01-01 42 views
6

Vì vậy, tôi sẽ tổng hợp một trình phân tích cú pháp RSS sẽ xử lý nguồn cấp dữ liệu RSS, lọc nó, sau đó tải xuống các mục phù hợp. Giả sử rằng các tệp đang được tải xuống là các tệp torrent hợp pháp.Tôi có nên sử dụng tệp văn bản hoặc Cơ sở dữ liệu không?

Bây giờ tôi cần lưu hồ sơ các tệp mà tôi đã tải xuống, do đó chúng không được thực hiện lại.

Tôi đã làm việc với SQLite (tạo cơ sở dữ liệu nếu không tồn tại, chèn hàng nếu câu lệnh chọn không trả về gì), nhưng tệp jar kết quả là 2.5MB + (do các thư viện sqlite).

Tôi nghĩ rằng nếu tôi sử dụng tệp văn bản, tôi có thể cắt tệp jar xuống vài trăm kilobyte.

tôi có thể giữ một danh sách tên các tập tin tải về - một trong mỗi dòng - và đọc toàn bộ tập tin vào bộ nhớ, tìm kiếm nếu một tập tin tồn tại vv

Vài câu hỏi mà xảy ra với tôi biết:

  • Giả sử 10 tệp được tải xuống một ngày, liệu phương pháp tệp văn bản có kết thúc là tăng quá nhiều tài nguyên không?
  • Nhìn chung cái nào nhanh hơn

Dù sao, các bạn nghĩ sao? Tôi có thể sử dụng một số lời khuyên ở đây, vì tôi vẫn còn mới để lập trình và làm điều này như một điều thú vị :)

+0

+1 cho trình độ mà torrents là hợp pháp mặc dù không có liên quan đến chương trình thực tế. Điều đó làm tôi mỉm cười. – Taymon

Trả lời

4

Nếu bạn cần theo dõi chỉ vài thông tin (như tên tệp), bạn có thể chắc chắn sử dụng một tệp văn bản đơn giản.

Sử dụng BufferedReader để đọc bạn sẽ đạt được hiệu suất tốt.

+0

Nếu nó có thể được thu nhỏ lại thành các cặp khóa và giá trị, 'java.util.Properties' sẽ thực hiện công việc một cách dễ dàng. – alf

2

Về mặt lý thuyết DB (hoặc quan hệ hoặc NoSQL là tốt hơn. Nhưng nếu kích thước phân phối là rất quan trọng cho bạn sử dụng hệ thống tập tin có thể thích hợp hơn.

Vấn đề duy nhất ở đây là việc thực hiện truy cập dữ liệu (hoặc cho ghi hoặc cho Có thể suy nghĩ về cách tiếp cận sau: Không nên sử dụng một tệp duy nhất, sử dụng thư mục chứa nhiều tệp thay vì tên tệp sẽ chứa khóa (hoặc khóa) cho phép truy cập dữ liệu cụ thể giống như khóa trong bản đồ. sẽ có thể truy cập dữ liệu tương đối dễ dàng và nhanh chóng

Có thể hãy xem trên XStream. Họ đã triển khai Bản đồ được triển khai như mô tả ở trên: ies trên đĩa, mỗi mục trong tập tin riêng biệt.

+0

Sự cố truy cập dữ liệu nào sẽ xảy ra? Tôi sẽ chỉ đọc hoặc viết bất cứ lúc nào, không phải cả hai. - Tha thứ trả lời muộn btw – lelouch

Các vấn đề liên quan