2017-10-11 98 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