在下面的方法中,我试图比较两个文本文件。
基本上,我需要将substring of sourceFile行与generatedFile进行比较。在这里,我正在为获得subList的价值而奋斗。因为我想在得到值之后再做子字符串。
def FileCompare(String sourceFile, String generatedFile) {
def firstList = new File(sourceFile).readLines()
def m = 0
def n = 1
new File(generatedFile).readLines().each {
println firstList.subList(m,n)
println it.substring(0,8)
m = m + 1
n = n + 1
// more coding to be done for compare
}
}在println firstList.subList(m,n)之上,我可以看到结果为[2104808660 COMPANYX]
但其意图是substring这一点。
sourceFile
2011070620110707 COMPANYX
2104808660 COMPANYX
2104808662 COMPANYX
2114454303 COMPANYX
2114454303 COMPANYX
00000004generatedFile
2011070620110707 COMPANYX
2104808665 COMPANYX
2104808661 COMPANYX
2114454301 COMPANYX
2114454301 COMPANYX
00000005发布于 2014-10-14 06:46:23
您可以做的是将两个文件的内容读入两个列表,并比较这些列表:
def toList(filename) {
new File(sourceFile).readLines().collect { it[0..7] }
}
def sourceList = toList(sourceFile)
def generatedList = toList(generatedFile)
//comparison发布于 2014-10-14 06:29:44
所以你要从这两个文件中提取每一行的前8个字符吗?看一看例子:
def firstList = new File(sourceFile).readLines()
new File(generatedFile).readLines().eachWithIndex { line, index ->
println firstList[index].substring(0,8)
println line.substring(0,8)
// ...or even shorter with ranges:
println firstList[index][0..7]
println line[0..7]
// more coding to be done for compare
}发布于 2014-10-14 15:12:59
如果不需要为其他任务保存文件行,则可以尝试以下操作。
[new File(sourceFile).readLines(), new File(generatedFile).readLines()]
.transpose().each{ line ->
println line[0][0..7] //Line from sourceFile
println line[1][0..7] //Line from generatedFile
// compare code here.
}https://stackoverflow.com/questions/26350750
复制相似问题