Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该使用文本文件还是数据库?_Java_Database - Fatal编程技术网

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

Java 我应该使用文本文件还是数据库?,java,database,Java,Database,所以我准备了一个RSS解析器,它将处理RSS提要,过滤它,然后下载匹配的项目。假设正在下载的文件是合法的torrent文件 现在我需要保存一份我已经下载的文件的记录,这样就不会再下载了 我已经让它使用SQLite(如果不存在,则创建数据库,如果select语句不返回任何内容,则插入行),但是结果jar文件是2.5MB+(由于SQLite libs) 我在想,如果我使用文本文件,我可以将jar文件缩减到几百KB 我可以保留一个下载文件名的列表——每行一个——并将整个文件读入内存,搜索是否存在文件,

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

现在我需要保存一份我已经下载的文件的记录,这样就不会再下载了

我已经让它使用SQLite(如果不存在,则创建数据库,如果select语句不返回任何内容,则插入行),但是结果jar文件是2.5MB+(由于SQLite libs)

我在想,如果我使用文本文件,我可以将jar文件缩减到几百KB

我可以保留一个下载文件名的列表——每行一个——并将整个文件读入内存,搜索是否存在文件,等等

我想到的几个问题是:

  • 比如说,如果每天下载10个文件,文本文件方法会结束吗 占用太多资源
  • 总的来说,哪一个更快

不管怎样,你们怎么想?我可以在这里使用一些建议,因为我还是一个编程新手,并且把编程作为一种业余爱好:)

如果您只需要跟踪一些信息(如文件名),您当然可以使用一个简单的文本文件

使用a进行读取应该可以获得良好的性能。

理论上,DB(关系数据库或NoSQL数据库)更好。但是,如果分布大小对您至关重要,则使用文件系统可能更好

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


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

+1以确认torrents是合法的,尽管与实际程序无关。这让我笑了。数据访问会导致什么问题?我只会读或写它在任何特定的时间都会出现,而不是两者都会出现。-请原谅延迟回复BTWI,如果它可以缩减为键和值对,
java.util.Properties
将轻松完成这项工作。