所以我正在整理一个RSS解析器,它将处理RSS提要,过滤它,然后下载匹配的项目。假设正在下载的文件是合法的torrent文件。
现在我需要保存已经下载的文件的记录,因此不会再次进行。
我已经使用了SQLite(如果不存在则创建数据库,如果select语句没有返回任何内容则插入行),但生成的jar文件是2.5MB +(由于sqlite库)。
我想如果我使用文本文件,我可以将jar文件减少到几百千字节。
我可以保存一份下载文件的名单 - 每行一个 - 并将整个文件读入内存,搜索是否存在文件等。
我遇到的几个问题都知道:
无论如何,你们怎么想?我可以在这里使用一些建议,因为我仍然是编程的新手,并且这是一个爱好的事情:)
答案 0 :(得分:4)
如果您只需要跟踪一些信息(比如文件名),您肯定可以使用简单的文本文件。
使用BufferedReader来阅读您应该会取得良好的效果。
答案 1 :(得分:2)
理论上DB(关系或NoSQL更好。但是如果分发大小对你来说使用文件系统至关重要。
这里唯一的问题是数据访问的性能(写入或读取)。可能会考虑以下方法。不要使用单个文件。使用包含多个文件的目录。文件名将包含允许访问特定数据的键(或键),就像地图中的键一样。在这种情况下,您将能够相对容易和快速地访问数据。
可能看看XStream。他们实现了如上所述实现的Map:将条目存储在磁盘上,每个条目都存储在单独的文件中。