2012-01-01 96 views
6

因此,我正在組建一個RSS解析器,它將處理RSS提要,對其進行過濾,然後下載匹配的項目。假設下載的文件是合法的torrent文件。我應該使用文本文件還是數據庫?

現在我需要保持我已經下載的文件的記錄,因此它們不會再做。我已經得到它與SQLite(創建數據庫如果不存在,插入行,如果一個選擇語句不返回任何內容),但生成的jar文件是2.5MB +(由於sqlite庫)。

我在想,如果我用一個文本文件,我可以將jar文件削減到幾百千字節。

我能夠把文件下載的名稱列表 - 每行一個 - 和讀取整個文件到內存中,搜索文件是否存在,等等

發生給我認識的幾個問題:

  • 如果每天下載10個文件,文本文件的方法會結束 佔用太多資源嗎?
  • 整體哪一個是更快

反正,你們覺得呢?我可以在這裏使用了一些建議,因爲我還是新的節目,做這個作爲一種業餘愛好的東西:)

+0

+1表示合法的種子是合法的,儘管與實際計劃無關。這讓我微笑。 – Taymon 2012-01-01 09:46:52

回答

4

如果您需要跟蹤只有很少的信息(如文件名),你可以肯定地使用一個簡單的文本文件。

使用BufferedReader閱讀,你應該取得良好的業績。

+0

如果它可以縮減爲鍵和值對,'java.util.Properties'將輕鬆完成這項工作。 – alf 2012-01-01 11:49:49

2

理論上DB(無論是關係或NoSQL的比較好,但如果分配的大小是你使用的文件系統可以是優選的關鍵。

這裏唯一的問題是數據訪問的性能(無論是用於寫入或可能需要考慮以下方法:不要使用單個文件,而應該使用包含多個文件的目錄,文件名將包含允許訪問特定數據的鍵(或鍵),就像地圖中的鍵一樣。 。將能夠相對容易地訪問數據和快速

可能採取的XStream看看他們有實現,如上述那樣實現地圖:商店ENTR磁盤上的每個條目都在單獨的文件中。

+0

數據訪問會導致什麼問題?我只會在任何特定的時間閱讀或寫作,而不是兩個。 - 赦免回覆遲btw – lelouch 2012-01-01 10:15:25

相關問題