我写了一个groovy脚本来逐行读取一个巨大的文件.
我目前正在使用如下的样板代码
File hugeFile = new File(filePath)
if (hugeFile.exists()) {
hugeFile.eachLine {line ->
//some process
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是如何判断"eachLine"是否使用BufferedReader来提高内存效率?
试一试,看看它是否可以处理大文件.
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);
...
}
Run Code Online (Sandbox Code Playgroud)