В этом месте:
while(bufferedReader.readLine() != null){
stringBuffer.append(bufferedReader.readLine())
}
вы сначала набираете readLine
дважды, чтобы проверить, не является ли оно нулевым, затем добавляете к stringBuffer
.Но на самом деле, второй вызов получает другую строку, поэтому вы теряете каждую вторую строку.
Обычный способ чтения буферизованного потока в Java:
String line;
while ((line = r.readLine()) != null) {
// do your stuff...
}
, но назначения в Scala возвращаютсяUnit
так что это не сработает.
Так, может быть, использование Stream.continually
было бы способом пойти?
Stream
.continually(bufferedReader.readLine())
.takeWhile(_ != null)
.foreach(stringBuffer.append)