2012-01-01 123 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

相关问题