如何使用 BufferedReader 中的 'eachLine' 闭包?
How to use the 'eachLine' closure from a BufferedReader?
似乎 groovy 有一个很好的闭包,可以关闭 Java io 的文件对象以从数据文件中读取行(例如制表符分隔的文本)..
def inputFile = new File('me/documents/100reasonsIloveJenniferLawerence.txt');
inputFile.eachLine { rawLine ->
def line = rawLine.split('\t')
但是假设文件是 'UTF-16LE' 编码的,并且 File 构造函数不允许指定编码,所以我需要像这样使用 BufferedReader...
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream('me/documents/100reasonsIloveJenniferLawerence.txt'), "UTF-16LE"));
我还能在这个 BufferedReader 上使用 eachLine 吗?
是的。
我猜你懒得去试试?
但是
reader.eachLine { line ->
println line
}
会很好
或者您可以跳过所有这些,只需将字符集传递给 eachLine:
inputfile.eachLine('UTF-16LE') { line ->
似乎 groovy 有一个很好的闭包,可以关闭 Java io 的文件对象以从数据文件中读取行(例如制表符分隔的文本)..
def inputFile = new File('me/documents/100reasonsIloveJenniferLawerence.txt');
inputFile.eachLine { rawLine ->
def line = rawLine.split('\t')
但是假设文件是 'UTF-16LE' 编码的,并且 File 构造函数不允许指定编码,所以我需要像这样使用 BufferedReader...
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream('me/documents/100reasonsIloveJenniferLawerence.txt'), "UTF-16LE"));
我还能在这个 BufferedReader 上使用 eachLine 吗?
是的。
我猜你懒得去试试?
但是
reader.eachLine { line ->
println line
}
会很好
或者您可以跳过所有这些,只需将字符集传递给 eachLine:
inputfile.eachLine('UTF-16LE') { line ->