小编Sch*_*agi的帖子

在 Java 8 中逐行读取 Spring Multipartfile 的最佳方法

什么是最好的处理 csv Spring Multipartfile?我以前使用过这样的东西:

public void handleFile(MultipartFile multipartFile){
    try{
        InputStream inputStream = multipartFile.getInputStream();
        IOUtils.readLines(inputStream, StandardCharsets.UTF_8)
                .stream()
                .forEach(this::handleLine);
    } catch (IOException e) {
        // handle exception
    }
}

private void handleLine(String s) {
    // do stuff per line
}
Run Code Online (Sandbox Code Playgroud)

据我所知,在处理它之前,这首先将整个文件加载到内存中的一个列表中,对于具有数十万行的文件,这可能需要相当长的时间。

有没有办法逐行处理它而无需手动实现迭代的开销(即使用诸如read(), hasNext(), ... 之类的东西?我正在为文件系统中的文件寻找类似于此示例的简洁内容:

try (Stream<String> stream = Files.lines(Paths.get("file.csv"))) {
        stream.forEach(this::handleLine);
} catch (IOException e) {
    // handle exception
}
Run Code Online (Sandbox Code Playgroud)

java spring java-8

2
推荐指数
1
解决办法
3563
查看次数

标签 统计

java ×1

java-8 ×1

spring ×1