Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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 要分块读取的大文件_Java_Java 8_Apache Commons - Fatal编程技术网

Java 要分块读取的大文件

Java 要分块读取的大文件,java,java-8,apache-commons,Java,Java 8,Apache Commons,我需要一个进程,一个大文件,并插入到数据库,不想花费大量的内存做同样的事情。我知道我们可以通过使用apache commons API或缓冲读取器在流模式下读取行…我希望在DB中以批处理模式插入,比如一次插入1000次,而不是一次接一次。。。。逐行读取文件、添加到列表、计算大小、插入和刷新行列表是否是实现此目的的唯一选项?根据您的描述,非常适合 基本上,它使用chunk概念来读取/处理/写入内容。顺便说一句,它可以并发执行 @Bean 受保护的步骤loadFeedDataToDbStep(){

我需要一个进程,一个大文件,并插入到数据库,不想花费大量的内存做同样的事情。我知道我们可以通过使用apache commons API或缓冲读取器在流模式下读取行…我希望在DB中以批处理模式插入,比如一次插入1000次,而不是一次接一次。。。。逐行读取文件、添加到列表、计算大小、插入和刷新行列表是否是实现此目的的唯一选项?

根据您的描述,非常适合

基本上,它使用
chunk
概念来读取/处理/写入内容。顺便说一句,它可以并发执行

@Bean
受保护的步骤loadFeedDataToDbStep(){
返回stepBuilder.get(“加载新fincon提要”).chunk(250)
.reader(itemReader(由表达式覆盖))
.processor(itemProcessor(被表达式覆盖、被日期覆盖、被表达式覆盖))
.writer(itemWriter())
.listener(archiveListener())
.build();
}

有关更多信息,请参阅

多大是大?可以变化为100-500 MB是否可以在要读取的文件上使用类似“拆分”的程序?你想每行插入一次吗?我说过我需要分批插入,即分块插入,因此我也想分批阅读。。。