Creo que el problema es entender lo que está haciendo la clase Fuente. Parece de su código que espera que Source.fromFile recupere el contenido de un archivo cuando realmente lo que hace es apuntar al inicio de un archivo.
Esto es típico cuando se trabaja con operaciones de E/S donde tiene que abrir una "conexión" con un recurso (en este caso una conexión con su sistema de archivos), leer/escribir varias veces y luego cerrar esa "conexión". En su ejemplo, abre una conexión a un archivo y debe leer la línea por línea del contenido del archivo hasta que llegue al final. Piensa que cuando lees estás cargando información en la memoria, por lo que no es una buena idea cargar todo el archivo en la memoria en la mayoría de los escenarios (lo que mkString hará).
Por otro lado mkString está hecho para iterar sobre todos los elementos de una colección, por lo que en este caso lo que hace es leer el archivo y cargar una matriz [String] en la memoria. Tenga cuidado porque si el archivo es grande su código fallará, normalmente cuando trabaje con E/S debe usar un búfer para leer algún contenido, luego procesar/guardar ese contenido y luego cargar más contenido (en el mismo búfer), evitando problemas con memoria Por ejemplo, leer 5 líneas -> analizar -> guardar líneas analizadas -> leer las 5 líneas siguientes -> etc.
También puede entender que "toString" no le recupera nada ... solo le dice "usted puede leer líneas, el archivo no está vacío ".
FYI, nadie escribe esos puntos y comas al final de la línea. –
¿Ha tenido algún problema para encontrar los documentos relevantes? Te dicen exactamente cuál es la diferencia. El primer paso es ubicarlos en su sistema de archivos local y marcarlos en su navegador. –
A decir verdad, 'toString' es un método de depuración. Su verdadero propósito es hacer que todos los objetos sean imprimibles, para que los depuradores/depuradores puedan mostrar algo. –