Какой простой и канонический способ прочитать весь файл в памяти в Scala? (В идеале, с контролем кодировки символов.)
Лучшее, что я могу придумать, это:
scala.io.Source.fromPath("file.txt").getLines.reduceLeft(_+_)
или я должен использовать одну из божественных идиом Java-богов, лучший из которых (без использования внешней библиотеки) выглядит следующим образом:
import java.util.Scanner
import java.io.File
new Scanner(new File("file.txt")).useDelimiter("\\Z").next()
Из чтения обсуждений списка рассылки мне не ясно, что scala.io.Source даже должен быть канонической библиотекой ввода-вывода. Я не понимаю, какова его цель.
... Мне хотелось бы что-то мертвое - просто и легко запомнить. Например, на этих языках очень сложно забыть идиому...
Ruby open("file.txt").read
Ruby File.read("file.txt")
Python open("file.txt").read()