Мне также было бы интересно узнать, почему именно это происходит, но я предполагаю, что это связано с тем фактом, что Source
является объектом (то есть синглтоном), и как он получает прозрачно сброс. Вы можете решить проблему следующим образом:
for (l <- g.listFiles if !l.isDirectory) {
| val src = Source.fromFile(l)
| println( (0 /: src.getLines) { (i, line) => i + 1 } )
| src.reset
| }
Важным битом является reset
- который, вероятно, должен находиться в блоке try-finally
(хотя тест isDirectory
, вероятно, также полезен)