我需要读取2个文件并逐行比较它们的内容。所以我需要类似file.readNextLine()
的功能。我如何在Kotlin做到这一点?
编辑: 这两个文件都已排序。第一个文件中不存在某些行,第二个文件中不存在某些行。我需要找到这种差异。
答案 0 :(得分:1)
文件之间的差异通常是一个很难的话题,但这取决于您要发现哪种差异。例如,差异最小?或者,如果仅缺少第一行,您可以报告N-1行更改吗?
使用diff
工具可以解决此问题。您可以检查以下相关线程:
Diff Algorithm?
File("a").useLines { a ->
File("b").useLines { b ->
val aIt = a.iterator()
val bIt = b.iterator()
//Do the DIFF on iterators
}
}
该代码以逐行惰性方式(使用序列)读取Kotlin中的文件。接下来,您可以使用迭代器来实现diff算法。