Groovy逐行读取文件,eachLine方法使用BufferedReader

标签 groovy

我编写了一个常规脚本来逐行读取一个巨大的文件。

我目前使用的样板代码如下

File hugeFile = new File(filePath)
if (hugeFile.exists()) {
    hugeFile.eachLine {line ->
        //some process
    }
}

我的问题是如何确定“eachLine”是否使用 BufferedReader 来提高内存效率?

最佳答案

尝试一下它是否可以处理大文件。

并检查 source at github :

public static <T> T eachLine(Reader self, int firstLine, @ClosureParams(value=FromString.class,options={"String","String,Integer"}) Closure<T> closure) throws IOException {
    BufferedReader br;
    int count = firstLine;
    T result = null;

    if (self instanceof BufferedReader)
        br = (BufferedReader) self;
    else
        br = new BufferedReader(self);
    ...
}

关于Groovy逐行读取文件,eachLine方法使用BufferedReader,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34002424/

相关文章:

jenkins - Jenkins Pipeline 中的 Jacoco 覆盖范围

java - Eclipse 使用旧的 PATH 变量在 Gradle 任务中执行命令行进程?

grails - 异步作业出错

spring - 多个 Camel 路线处理同一个文件

java - SwingBuilder : scrollPane

Grails - 如何从表单调用 Controller 方法

java - Java如何获取一个月的最后一个星期四

testing - gradle 测试阶段?

groovy - 执行 GroovyShell 后如何撤消元类更改?

grails - groovy 和 grails 的编辑器?