【发布时间】:2015-06-05 05:47:11
【问题描述】:
我正在做一个项目,我将有一个二进制文件。该文件分为多个部分,每个部分代表一个原始值列表。我需要一个可以拥有一组对象的解决方案,每个对象代表文件的一部分。然后这些集合都保存在一个“文件”对象中,该对象代表整个文件。
每个集合对象都需要提供对文件表示部分中每个值的顺序访问。什么方法可以在不先将所有数据加载到内存的情况下提供最快的数据检索?
如果同一个“文件”对象的两个单独集合可以被两个单独的线程访问,那就太好了,但这并不重要。
【问题讨论】:
-
取决于您作为系统默认设置的字符集...请也提供...
-
@CoderNeji 他说是二进制文件。
-
“相当大”有多大?您很可能会发现,追求效率会在代码和维护方面花费大量精力,而这最终并不值得。
-
@TroyStopera 大多数格式为“什么是最好的......”“我应该这样做还是那样”等的问题都已关闭。您有 3 个潜在的解决方案(尽管我无法理解
Inputstream在那里),所以您的问题基本上是“您能为我决定吗”,而线程问题是一个完全独立的问题。然而,为了避免再把它串起来,FileChannel将是最现代和最快的方法(因为它可以立即内存映射部分)。 -
@Kayaman 现在应该在哪里提出这样的问题?我开始对这么快失去兴趣,因为像这样的问题我觉得真的很有趣——而不是“为什么这会导致 NPE?”和类似的。