Котлин.Одновременно читать из 2 файлов - PullRequest
1 голос
/ 15 марта 2019

Мне нужно прочитать 2 файла и сравнить их содержимое построчно.Поэтому мне нужно что-то вроде file.readNextLine() функциональности.Как мне добиться этого в Kotlin?

Редактировать: Оба файла уже отсортированы.Некоторые строки отсутствуют в первом файле, некоторые строки отсутствуют во втором файле.Мне нужно найти эту разницу.

1 Ответ

1 голос
/ 16 марта 2019

Разница между файлами - сложная тема в целом, но она зависит от того, какую разницу вы бы хотели заметить.Например, минимальная разница?Или, может быть, будет нормально сообщить об изменении строк N-1, если пропущена только первая строка?Инструмент diff это решает.Вы можете проверить связанный поток по этому вопросу:
Алгоритм различий?


    File("a").useLines { a ->
      File("b").useLines { b -> 

        val aIt = a.iterator()
        val bIt = b.iterator()

        //Do the DIFF on iterators
      }
    } 

Код читает файлы в Kotlin построчно ленивым способом (используя последовательности).Далее вы можете использовать итераторы для реализации алгоритма сравнения.

...