拆分文本文件而不读取它

Ram*_*ani 5 java file

有没有任何方法可以在java中拆分文本文件而不读取它?

我想以GB的形式处理一个大文本文件,所以我想将文件分成小部分,并在每个文件上应用线程并为其组合结果.

因为我将为小部件阅读它,然后通过读取它来分割文件将没有任何意义,因为我将不得不读取相同的文件两次,这将降低我的性能.

Tho*_*fer 2

您的线程尝试格式不正确。如果您必须对文件数据进行大量处理,请考虑以下线程结构:

1 个 Reader 线程(读取文件并为工人提供数据)

  • 具有读取块的队列

1..n 个工作线程(n 取决于您的 cpu 核心,处理来自读取器线程的数据块)

  • 带有已处理块的队列或字典

1 个写入器线程(将结果写入某个文件)

也许您可以将 Reader / Writer 线程合并为一个线程,因为在同一物理硬盘上并行 IO 没有多大意义。

很明显,您需要线程之间的一些同步内容。特别是对于队列,请考虑信号量