我有以下方法,我试图比较两个文本文件。
所以基本上我需要将substring
行的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
那个。
的资源文件:
2011070620110707 COMPANYX
2104808660 COMPANYX
2104808662 COMPANYX
2114454303 COMPANYX
2114454303 COMPANYX
00000004
generatedFile :
2011070620110707 COMPANYX
2104808665 COMPANYX
2104808661 COMPANYX
2114454301 COMPANYX
2114454301 COMPANYX
00000005
答案 0 :(得分:2)
所以你要从两个文件中提取每行的前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
}
答案 1 :(得分:2)
您可以做的是将两个文件的内容读取到两个列表并比较列表:
def toList(filename) {
new File(sourceFile).readLines().collect { it[0..7] }
}
def sourceList = toList(sourceFile)
def generatedList = toList(generatedFile)
//comparison
答案 2 :(得分:1)
如果您不需要保存文件行以执行其他任务,那么您可以试试这个。
[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.
}