我应该使用文本文件还是数据库?

时间:2012-01-01 09:07:30

标签: java database

所以我正在整理一个RSS解析器,它将处理RSS提要,过滤它,然后下载匹配的项目。假设正在下载的文件是合法的torrent文件。

现在我需要保存已经下载的文件的记录,因此不会再次进行。

我已经使用了SQLite(如果不存在则创建数据库,如果select语句没有返回任何内容则插入行),但生成的jar文件是2.5MB +(由于sqlite库)。

我想如果我使用文本文件,我可以将jar文件减少到几百千字节。

我可以保存一份下载文件的名单 - 每行一个 - 并将整个文件读入内存,搜索是否存在文件等。

我遇到的几个问题都知道:

  • 假设每天下载10个文件,文本文件方法是否结束 占用太多资源?
  • 总体而言哪一个更快

无论如何,你们怎么想?我可以在这里使用一些建议,因为我仍然是编程的新手,并且这是一个爱好的事情:)

2 个答案:

答案 0 :(得分:4)

如果您只需要跟踪一些信息(比如文件名),您肯定可以使用简单的文本文件。

使用BufferedReader来阅读您应该会取得良好的效果。

答案 1 :(得分:2)

理论上DB(关系或NoSQL更好。但是如果分发大小对你来说使用文件系统至关重要。

这里唯一的问题是数据访问的性能(写入或读取)。可能会考虑以下方法。不要使用单个文件。使用包含多个文件的目录。文件名将包含允许访问特定数据的键(或键),就像地图中的键一样。在这种情况下,您将能够相对容易和快速地访问数据。

可能看看XStream。他们实现了如上所述实现的Map:将条目存储在磁盘上,每个条目都存储在单独的文件中。