我的任务是以 C# 控制台应用程序的形式提供对非常大 (50GB+) ASCII 文本文件(处理第 n 行/第 n 行中的第 n 个单词的请求)的随机读取访问。
经过几天的谷歌搜索和阅读,我得出了这样的实现愿景:由于StreamReader擅长顺序访问,因此使用它来建立文件中行/单词的索引(List<List<long>>
map,map[i][j]
第 i 个单词的位置在哪里行开始)。然后使用索引通过MemoryMappedFile访问文件,因为它擅长提供随机访问。
解决方案中是否存在一些明显的缺陷?对于给定的任务,它是否是最佳的?
UPD:它将在 64 位系统上执行。