Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用NIO仅读取文件的内部段_Java_Nio - Fatal编程技术网

Java 如何使用NIO仅读取文件的内部段

Java 如何使用NIO仅读取文件的内部段,java,nio,Java,Nio,我的批处理过程需要从大型文件(1-3G)中读取行,每个文件都可以独立处理。这些文件可以有10-50M行。我正在考虑生成大约12个线程,每个线程将处理预定范围的缓冲区,例如T1将同时读取范围0-1、T2 1-2等。当然,这意味着T2需要立即跳转到缓冲位置2,而不读取0-2 在JavaNIO中,为了并发的目的,这种类型的缓冲文件读取分段是可能的吗 这没有意义。CPU可能允许多线程,但磁盘仍然是单线程的。所有这些都会导致磁盘抖动。算了。您可以使用RandomAccessFile和seek()跳入文件,

我的批处理过程需要从大型文件(1-3G)中读取行,每个文件都可以独立处理。这些文件可以有10-50M行。我正在考虑生成大约12个线程,每个线程将处理预定范围的缓冲区,例如T1将同时读取范围0-1、T2 1-2等。当然,这意味着T2需要立即跳转到缓冲位置2,而不读取0-2


在JavaNIO中,为了并发的目的,这种类型的缓冲文件读取分段是可能的吗

这没有意义。CPU可能允许多线程,但磁盘仍然是单线程的。所有这些都会导致磁盘抖动。算了。

您可以使用RandomAccessFile和seek()跳入文件,但这是基于字节偏移量的,因此如果需要缓冲区跳入“第10M行”,则需要更多处理。