我试图从我的Scala项目中读取一些文件,如果我使用:java.io.File(".").getCanonicalPath()
我发现我当前的目录远离它们(我已经安装了Scala Eclipse的地方)。那么如何将当前目录更改为项目的根目录,或者获取项目的路径?我真的不想拥有输入文件的绝对路径。
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
答案 0 :(得分:12)
src/main/resources/<packageName>
,其中<packageName>
是您的类包。val PATH = getClass.getResource("").getPath
行答案 1 :(得分:0)
另一种解决方法是将您需要的路径放在用户环境变量中,并使用 sys.env 调用它(如果失败则返回异常)或 System.getenv (如果失败则返回null),例如val PATH = sys.env("ScalaProjectPath")
,但问题是如果移动项目,则必须更新变量,这是我不想要的。
答案 2 :(得分:0)
new File(".").getCanonicalPath
会给你你需要的基本路径