2017-10-11 70 views
1

我想通过scala命令行读取文本文件。 代码编译正确,但由于文件未找到错误而导致执行失败。在scala命令行中读取文本文件行

import scala.io.Source 

object Mainclass extends App { 
    val filename = "filo.txt" 
    for(line <- Source.fromFile(filename).getLines) { 
     println(line) 
    } 
} 

这是错误:

scala Main.scala: 
java.io.FileNotFoundException: filo.txt (The system cannot find the file specified) 
+3

你的代码对我来说没有错误(我创建了'filo.txt'文件之后)。 – jwvh

回答

2

由于filo.txt是你需要确保正在运行的程序使用filo.txt为工作目录的位置相对文件路径。

例子:

echo 'my test data' > ~/mydir/filo.txt 
cd ~/mydir 
scala Main.scala 

所以,当你运行这个程序,它需要在MYDIR启动。您可以通过使用完全限定的路径来避免这种情况。

+0

我试着用绝对路径代替相对路径,并将文件放在Main.scala的同一目录中。虽然它没有帮助。 – Kan011

+0

请附上运行程序的目录列表。 –

+0

这目录:d:\火花\ cmdscala \的HelloWorld \ SRC \主\阶 下面是代码进口scala.util 进口scala.io.Source 对象Mainclass延伸应用 { VAL文件名=“费罗。 txt' for(line < - Source.fromFile(filename).getLines){ println(line) } }我在windows cmd中运行 – Kan011