带有绝对路径的FileNotFoundException

时间:2016-09-13 15:08:44

标签: path

我有一个这样的目录:

assigment
 |
 |__ src
 |   |
 |   |__ Main.scala
 |
 |
 |__ testcase
     |
     |__ Simple.in

Main.scala 中,简单。Source.fromFile()读取:

val inputFile = "Simple.in"
val lines = Source.fromFile("./testcase/" + inputFile).getLines

但是当我在sbt中运行 Main.scala 时,会出现FileNoutFoundException。当我将路径更改为"../testcase/" + inputFile时,它可以正常工作。原来的路径来自我的老师,所以我想知道哪条路径实际上是正确的?哦,我正在使用Linux btw ...

2 个答案:

答案 0 :(得分:1)

./表示:当前路径

../表示:当前目录“上方”的目录

因此:当你从“src”运行你的Scala类时,“。/ testcase”会让它在“src”中寻找一个目录测试用例;或使用完整路径名称:

“assignment / src /”+“./ testcase”变成“assignment / src / testcase”

然而,当你使用

“assignment / src /”+“../ testcase”变成“赋值/测试用例”

因此,带有“..”的版本会找到有效路径。这就是魔法!

答案 1 :(得分:1)

<a href="WhatsApp://send?text=This is the content the receiver gets via WhatsApp">Share via WhatsApp</a> =&gt;目前的目录

. =&gt;一个高于当前的dir

但访问资源的标准方法是使用sbt项目结构的..文件夹。

这种方式可以帮助您访问文件,而不管您在代码中访问资源的位置(哪个类)。

放置文件的文件夹

resources