我有一个非常大的文本数据文件。是否可以由多个文件读取器同时从不同位置并行读取此文件?例如,一个读取器从头开始读取并到达中间,而另一个读取器从文件的中间开始读取至末尾。
我有另一种方法,可以通过流读取文件并使用parallel
。但这并没有达到目标。
Files.lines(filePath).parallel
多个文件阅读器可能无法读取同一文件,因为该文件已被当前正在读取该文件的另一个线程获取并锁定。无论如何,该文件是否可以在许多线程之间共享,并且他们可以同时读取它。
答案 0 :(得分:1)
是否可以由多个文件读取器同时从不同位置同时读取此文件?
是的。您可以使用RandomAccessFile一次从多个点读取文件。您只能在文件未锁定的情况下执行此操作。
如果您有一个文本文件,则需要找到该行的开头,并且内置工具并不真正支持此类,因此您必须自己做一些工作。
有什么方法可以使该文件在多个线程之间共享,并且他们可以同时读取它。
我们有几个工具支持跨进程并发读取和写入同一文件,因此这是可能的。 (它们适用于二进制文件,而不适用于文本)