2014-09-25 1262 views
9

我試圖從我的Scala項目中讀取一些文件,如果我使用:java.io.File(".").getCanonicalPath()我發現我的當前目錄離他們很遠(正是我安裝Scala Eclipse的地方)。那麼如何將當前目錄更改爲我的項目的根目錄,或者獲取項目的路徑?我真的不想擁有我的輸入文件的絕對路徑。我如何在Scala中獲得項目路徑?

val PATH = raw"E:\lang\scala\progfun\src\examples\" 
    def printFileContents(filename: String) { 
    try { 
     println("\n" + PATH + filename) 
     io.Source.fromFile(PATH + filename).getLines.foreach(println) 
    } catch { 
     case _:Throwable => println("filename " + filename + " not found") 
    } 
    } 

    val filenames = List("random.txt", "a.txt", "b.txt", "c.txt") 
    filenames foreach printFileContents 

回答

11
  1. 將文件添加到src/main/resources/<packageName>,其中<packageName>是你的類包。
  2. 更改線路val PATH = getClass.getResource("").getPath
+0

那麼,在我的情況下(在Windows 8上)返回的路徑是/bin/ /這正是我想要的。謝謝! – 2014-09-25 11:36:11

0

另一個解決辦法是讓你在用戶環境變量需要的路徑,並與sys.env調用它(返回異常,如果失敗)或System.getenv(如果失敗,則返回空值),例如val PATH = sys.env("ScalaProjectPath"),但問題是,如果移動項目,則必須更新變量,這是我不想要的。

相關問題