临时存储组成较大文件的不连续数据的最有效方式

问题描述:

我们正在模拟java中的p2p网络。所以我们把文件分成块(带有校验和),这样一旦我们拥有了所有的部分,单个块就可以重新编译为原始文件。下载单个零件的最佳方式是什么?临时存储组成较大文件的不连续数据的最有效方式

我正在考虑将每个块作为单独的文件存储......但是如果有20000个块,它会创建许多文件。这是最好的方式吗?

谢谢

+0

大块会有多大,你期望数以千计? – Thomas

要么在内存或文件中保持块。这里没什么可讨论的。找到块数和实际大小之间的完美比例,以满足您的需求。

文件听起来更合理,因为在应用程序崩溃的情况下数据不会完全丢失,并且可以继续下载。

我会写入内存,直到达到某个阈值,此时将内存转储到磁盘,并不断读取内存。文件传输完成后,您可以获取当前存储在内存中的内容,并将其与可能存储在磁盘上的内容进行连接。