Я не знаю, что это решит эту проблему, но в реализациях Reader, которые я вижу в исходном коде Scala, метод first
возвращает символ конца файла, а не ноль в конце.И я считаю, что обычно хорошо избегать нулей ...
Например, в CharSequenceReader
это выглядит как
/** Returns the first element of the reader, or EofCh if reader is at its end
*/
def first =
if (offset < source.length) source.charAt(offset) else EofCh
И этот символ определяется в объекте-компаньоне:
object CharSequenceReader {
final val EofCh = '\032'
}